我显示了一个模式视图控制器,并在那里使用按钮添加子视图。我需要添加其他视图控制器作为子视图,然后删除它后面的那个。那么我可以通过索引来引用视图吗?
实际例子:用户看到页面1(根视图控制器)用户按下按钮,添加一个子视图,页面2。用户按下另一个按钮,添加一个子视图,页面3。现在我需要删除页面2,这样就不会消耗内存,事情就会继续下去。
它不像通过名称删除它那么简单,因为我的根视图控制器有下一步/后退按钮和特定视图的按钮。我总是可以插入正确的“下一个”子视图,但要删除的子视图可以是它们中的任何一个。用户可以在第2、3、4页等位置跳转到第5页。在第5页的按钮操作中,我当然可以将第5页视图控制器添加为一个子视图,但当最后一个子视图可能是它们中的任何一个时,我该如何告诉它删除它?
发布于 2010-08-05 22:56:16
我认为这可以通过正确使用UINavigationController;来解决,但是,您可以始终使用[rootViewController.subviews objectAtIndex:subViewIndex];
发布于 2010-08-05 22:56:01
您可以使用
[[parentView subviews] objectAtIndex:n];但买家要当心,假设数组中的东西出现在哪里是危险的。如果您想不出更好的方法来实现您的目标,那么您至少需要做一些类型检查(isKindOfClass),以确保该索引处的内容确实是您想要执行的操作。
发布于 2010-08-05 23:04:23
根视图= A;第二个视图= B;第三个视图= C;
你想导航A -> B -> C -(back)> A,对吗?
当你从B转到C时,只需弹出到A的根视图控制器,然后按下C,B现在不在混合中。
只有当您使用UINavigationController时,这才会起作用,但您也可以使用相同的方法来解决您的问题。
--对于Modal:--
// Viewing B, going to go to C:
[self dismissModalViewControllerAnimated:NO]; // B is gone.
[self presentModalViewController:C animated:YES]; // C animates uphttps://stackoverflow.com/questions/3415956
复制相似问题