视图控制器可以通过pushViewController或presentModalViewController从超级视图控制器获得 . 在这个视图控制器中,我应该如何知道控制器的方向?我需要它来关闭视图 -
if (presentModalViewController ) {
[self dismissModalViewControllerAnimated:YES];
}else{
[self.navigationController popViewControllerAnimated:YES];
}
谢谢
3 回答
如果视图不在导航控制器中,则self.navigationController将为nil(例如,因为它已呈现) . 当然,如果你出现并拥有一个导航控制器,你需要深入挖掘 .
另外,如果你没有出现,“self.presentingViewController”可能是零 .
注意iOS的一个常见习惯是创建一个简单的协议来处理关闭视图 . 推送/呈现的视图是委托,并获取其“viewWantsToClose”目标 . 如果您创建一个新的Utility项目,您将看到我在说什么 . 这就是Apple翻转“信息”视图的方式 . 您可以让视图接受“doCloseAction”的块 .
您负责推送或显示视图,以便您知道何时弹出或关闭视图 . 如果仍需执行此类检查,则可以从子视图验证
self.navigationController
是否为零你可以做:
要么