我显示一个模态视图控制器,然后使用按钮添加子视图。我需要添加其他视图控制器作为子视图,然后删除它背后的那个。那么我可以通过他们的索引来引用这些观点吗?
实际例子: 用户看到第1页(根视图控制器) 用户按下按钮,添加子视图,第2页。 用户按下另一个按钮,添加子视图,第3页。 现在我需要删除第2页,以免消耗内存并让事情发生在那里。
这并不像通过名称删除它那么简单,因为我的根视图控制器具有指向特定视图的下一个/后退按钮和按钮。我总是可以插入正确的“下一个”子视图,但要删除的子视图可以是其中任何一个。用户可以在第2,3,4页等,并跳转到第5页。在第5页的按钮操作中,我当然可以将第5页视图控制器添加为子视图,但如何告诉它删除最后一个子视图什么时候可能是其中任何一个?
答案 0 :(得分:1)
我认为这可以通过正确使用UINavigationController;
来解决,但是,您可以随时使用[rootViewController.subviews objectAtIndex:subViewIndex];
答案 1 :(得分:0)
您可以使用
[[parentView subviews] objectAtIndex:n];
但买家要小心,假设事物出现在该阵列中的位置是危险的。如果你想不出更好的方法来实现你的目标,你至少需要进行某种类型的检查(isKindOfClass),以确保该索引的实际内容是你想要采取的行动。
答案 2 :(得分:0)
Root View = A; 第二视图= B; 第三视图= C;
你要导航A - > B - > C - (后)>一个正确的?
当你从B到C时,只需弹出到根视图控制器到A然后按下C,B现在不在混合中。
这只有在你使用UINavigationController时才有效,但你可以对你的问题使用相同的想法。
- 对于模态: -
// Viewing B, going to go to C:
[self dismissModalViewControllerAnimated:NO]; // B is gone.
[self presentModalViewController:C animated:YES]; // C animates up