所以,我从RootViewController中推送一个视图控制器,如下所示:
[self.navigationController pushViewController:anotherViewController animated:YES];
但是,从anotherViewController
现在开始,我想再次访问RootViewController。
我尝试着
//(现在在另一个ViewController中)
/// RootViewController * root =(RootViewController *)self.parentViewController; //不
// 呃
RootViewController * root =(RootViewController *)[self.navigationController.viewControllers objectAtIndex:0]; // YES !! 有用
我不确定为什么这会起作用,我不确定它是否是最好的方式。有人可以评论一种更好的方式来从你推入RootViewController的navigationController的控制器获取RootViewController,以及我做的方式是否可靠?
发布于 2018-03-28 15:21:23
示例代码:
// Inside another ViewController
NSArray *viewControllers = self.navigationController.viewControllers;
UIViewController *rootViewController = [viewControllers objectAtIndex:viewControllers.count - 2];
这是获得“后退”视图控制器的标准方式。原因很objectAtIndex:0
有效,因为你试图访问的视图控制器也是根视图控制器,如果你在导航中更深入,后视图不会和根视图相同。
https://stackoverflow.com/questions/-100007837
复制相似问题