首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >作为导航控制器的一部分,我可以以模态的方式显示视图控制器吗?

作为导航控制器的一部分,我可以以模态的方式显示视图控制器吗?
EN

Stack Overflow用户
提问于 2013-09-06 06:42:42
回答 1查看 1.7K关注 0票数 1

我有一个表视图和一个地图视图,它们需要显示相同的细节控制器。细节控制器当前嵌入在带有表视图的导航控制器中(我相信它仍然使用来自主-细节模板的自动生成的段)。

我计划让我的地图注释分段到适当的细节控制器,但只是为了测试,我在MKMapView上放了一个UIButton,并通过故事板对detailViewController进行了模式分段。

当我运行应用程序时,地图视图上的按钮什么也不做,也不会抛出/记录任何错误。我知道你不需要在导航控制器中以模态方式呈现视图控制器,那么我不允许以模态方式呈现属于导航控制器的视图控制器吗?

我是否需要将细节控制器从storyboard导航控制器中取出,并手动将其推送到导航栈?

EN

回答 1

Stack Overflow用户

发布于 2013-09-06 18:31:37

可以使用编码的序列替换脚本序列:

在每个源控制器中创建一个属性destinationVC并对其进行初始化:

代码语言:javascript
运行
复制
@property (nonatomic, strong)  UIViewController* dest;
self.dest = [self.storyboard instantiateViewControllerWithIdentifier:@"destinationID"];

别忘了在故事板中为destinationID设置标识符。

要分割模式,请执行以下操作:

代码语言:javascript
运行
复制
[self presentModalViewController:self.dest animated:YES];

推送:

代码语言:javascript
运行
复制
[self.navigationController pushViewController:self.dest animated:YES];

当你向后分割时,你应该在目标VC上小心。

代码语言:javascript
运行
复制
if ([self.parentViewController.modalViewController isEqual:self]) {
   //Modal
   [self dismissModalViewControllerAnimated:YES];
} else {
   //Push
   [self.navigationController popViewControllerAnimated:YES];
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18647110

复制
相关文章

相似问题

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