首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以通过索引引用一个子视图吗?

我可以通过索引引用一个子视图吗?
EN

Stack Overflow用户
提问于 2010-08-05 22:51:47
回答 3查看 4K关注 0票数 0

我显示了一个模式视图控制器,并在那里使用按钮添加子视图。我需要添加其他视图控制器作为子视图,然后删除它后面的那个。那么我可以通过索引来引用视图吗?

实际例子:用户看到页面1(根视图控制器)用户按下按钮,添加一个子视图,页面2。用户按下另一个按钮,添加一个子视图,页面3。现在我需要删除页面2,这样就不会消耗内存,事情就会继续下去。

它不像通过名称删除它那么简单,因为我的根视图控制器有下一步/后退按钮和特定视图的按钮。我总是可以插入正确的“下一个”子视图,但要删除的子视图可以是它们中的任何一个。用户可以在第2、3、4页等位置跳转到第5页。在第5页的按钮操作中,我当然可以将第5页视图控制器添加为一个子视图,但当最后一个子视图可能是它们中的任何一个时,我该如何告诉它删除它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-05 22:56:16

我认为这可以通过正确使用UINavigationController;来解决,但是,您可以始终使用[rootViewController.subviews objectAtIndex:subViewIndex];

票数 1
EN

Stack Overflow用户

发布于 2010-08-05 22:56:01

您可以使用

代码语言:javascript
复制
[[parentView subviews] objectAtIndex:n];

但买家要当心,假设数组中的东西出现在哪里是危险的。如果您想不出更好的方法来实现您的目标,那么您至少需要做一些类型检查(isKindOfClass),以确保该索引处的内容确实是您想要执行的操作。

票数 0
EN

Stack Overflow用户

发布于 2010-08-05 23:04:23

根视图= A;第二个视图= B;第三个视图= C;

你想导航A -> B -> C -(back)> A,对吗?

当你从B转到C时,只需弹出到A的根视图控制器,然后按下C,B现在不在混合中。

只有当您使用UINavigationController时,这才会起作用,但您也可以使用相同的方法来解决您的问题。

--对于Modal:--

代码语言:javascript
复制
// Viewing B, going to go to C:
[self dismissModalViewControllerAnimated:NO]; // B is gone.
[self presentModalViewController:C animated:YES]; // C animates up
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3415956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档