它们之间的区别是什么:
[self.navigationController presentModalViewController:nav animated:YES];和
[self presentModalViewController:nav animated:YES];其中,self是UIViewController的子类。
除此之外,我如何忽略模式视图也很重要吗?示例:
[self dismissModalViewControllerAnimated:YES];或
[self.navigationController dismissModalViewControllerAnimated:YES];如果一个modalView是由self.navigationController呈现的,如果在self上调用它,它会被清除吗?反之亦然?
我知道苹果建议在实际实现中使用协议和代理,但我只是想知道“在引擎盖下”的行为是否相同。
我一直在四处寻找这个问题的答案,但我还没有找到任何东西,所以如果这是一个复制品,我提前道歉。
谢谢
发布于 2012-04-06 00:53:52
你从什么类调用这个(即什么是self)。如果您是从视图控制器调用它,那么不同之处在于视图控制器呈现的是modalviewcontroller,而不是呈现模式视图的视图控制器的navigationcontroller
如果你使用self.navigationcontroller,你可以与self.navigationitem交互,这是视图控制器所不具备的。
编辑:
是的,它使您能够将额外的ViewControllers推送到self.navigationController.ViewControllers阵列上,然后使用navigationBar从ViewController移动到ViewController。
例如,您可以执行[self.navigationController presentModalViewController:nav animated:YES];,然后如果用户单击一个按钮,您可以按下一个ViewController [self.navigationController pushViewController:vc animated:YES];,然后在ModalView中会出现一个新的视图控制器/视图。当您关闭ModalViewController时,您仍然会被传输回原来的视图控制器。
回答你的第二个问题:你应该放弃模式视图,就像你展示它一样。所以,如果你使用self.navigationController来呈现,使用self.navigationController来消除。
https://stackoverflow.com/questions/10032700
复制相似问题