首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >presentModalViewController:差异

presentModalViewController:差异
EN

Stack Overflow用户
提问于 2012-04-06 00:49:59
回答 1查看 374关注 0票数 0

它们之间的区别是什么:

代码语言:javascript
复制
[self.navigationController presentModalViewController:nav animated:YES];

代码语言:javascript
复制
[self presentModalViewController:nav animated:YES];

其中,self是UIViewController的子类。

除此之外,我如何忽略模式视图也很重要吗?示例:

代码语言:javascript
复制
[self dismissModalViewControllerAnimated:YES];

代码语言:javascript
复制
[self.navigationController dismissModalViewControllerAnimated:YES];

如果一个modalView是由self.navigationController呈现的,如果在self上调用它,它会被清除吗?反之亦然?

我知道苹果建议在实际实现中使用协议和代理,但我只是想知道“在引擎盖下”的行为是否相同。

我一直在四处寻找这个问题的答案,但我还没有找到任何东西,所以如果这是一个复制品,我提前道歉。

谢谢

EN

回答 1

Stack Overflow用户

发布于 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来消除。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10032700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档