1

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

我计划让我的地图注释转到正确的细节控制器,但只是为了测试,我在 MKMapView 上放了一个 UIButton,并通过情节提要对 detailViewController 进行了模态搜索。

当我运行应用程序时,地图视图上的按钮什么也不做,也不会抛出/记录错误。我知道您不必在导航控制器中以模态方式呈现视图控制器,那么我是否不允许以模态方式呈现作为导航控制器一部分的视图控制器?

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

4

1 回答 1

1

您可以用编码的转场替换故事板转场:

在每个源控制器中创建一个属性 destinationVC 并初始化它:

@property (nonatomic, strong)  UIViewController* dest;
self.dest = [self.storyboard instantiateViewControllerWithIdentifier:@"destinationID"];

不要忘记在storyboard 中为destinationID 设置标识符。

继续模态:

[self presentModalViewController:self.dest animated:YES];

推动:

[self.navigationController pushViewController:self.dest animated:YES];

当您转回时,您应该小心 dest VC。

if ([self.parentViewController.modalViewController isEqual:self]) {
   //Modal
   [self dismissModalViewControllerAnimated:YES];
} else {
   //Push
   [self.navigationController popViewControllerAnimated:YES];
}
于 2013-09-06T10:31:37.347 回答