带有UITableViewController的UINavigationController

时间:2013-11-06 15:28:14

标签: ios objective-c uinavigationcontroller uitableview

UITableViewController中的UINavigationController名为UIPopoverController,显示在UITableviewContoller中。

有时EditPoint是根UITableview,有时另一个[self.navigationController pushViewController:tableView animated:TRUE]; 推动EditPoint。

有没有一种方法可以让我在EditPoint TableViewController中判断是否有人将其推入视图或是否为根?

我推送EditPoint:

DLog(@"self.navigationController.presentingViewController: %@", self.navigationController.presentingViewController);
DLog(@"self.navigationController.presentedViewController: %@", self.navigationController.presentedViewController);

DLog(@"self.presentingViewController: %@", self.presentingViewController);
DLog(@"self.presentedViewController: %@", self.presentedViewController);

然后在EditPoint中我尝试了:

[self.navigationController popToRootViewControllerAnimated:TRUE];

并且它们都返回NULL。

但如果我尝试:

presentingViewController

或任何其他流行方法,它都有效。

知道为什么我无法弄清楚{{1}}是什么?

最终结果是我需要判断是否有后退按钮,或者我是否需要在其中放置一个显示取消的按钮。有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

使用self.navigationController.viewControllers检查self是否是其导航控制器堆栈上的根视图控制器,当控制器显示为模态时,应使用您正在使用的属性。