我可以从另一个模态视图控制器中推送模态视图控制器吗?

Posted

技术标签:

【中文标题】我可以从另一个模态视图控制器中推送模态视图控制器吗?【英文标题】:Can I push a modal view controller from within another modal view controller? 【发布时间】:2010-03-31 01:25:27 【问题描述】:

我有一个 rootViewController,它有时会显示一个 peoplePickerNavigationController。当我的用户选择特定的联系人属性时,我正在尝试推送第二个视图控制器,如下所示:

-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)picker shouldContinueAfterSelectingPerson:(ABPersonRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier 
RuleBuilder *ruleBuilder = [[RuleBuilder alloc] initWithNibName:@"RuleBuilder" bundle:nil];
[self pushModalViewController:ruleBuilder animated:YES];
[ruleBuilder release];
return NO;

这编译得很好,但是当我在模拟器中运行代码并通过 peoplePicker 运行时,当我选择联系人属性时没有任何反应。一时兴起,我添加了一个 [self dismissModalViewControllerAnimated:YES];就在 [ruleBuilder 发布] 之前;并且取消了 peoplePicker,但对我缺少的 ruleBuilder 没有影响。

有什么想法吗?

【问题讨论】:

【参考方案1】:

找到解决方案:

[picker pushModalViewController:ruleBuilder animated:YES];

【讨论】:

感谢您的信息。不幸的是,如果您所在的屏幕没有导航控制器,这将不起作用。 PresentModalViewController 不这样做;它只显示一个。 奥斯卡是对的,所以在更新之前不应将其视为正确答案。 如果您所在的屏幕没有导航控制器,请创建一个以 ruleBuilder 作为其根控制器的控制器。然后展示 NavController。

以上是关于我可以从另一个模态视图控制器中推送模态视图控制器吗?的主要内容,如果未能解决你的问题,请参考以下文章

将视图控制器推入模态视图控制器视图

模态下的弹出/推送视图

从模态视图控制器推送/弹出到另一个视图控制器(包括图片)

从另一个 modalviewcontroller 呈现 ModalViewcontroller

推然后模态然后推?

如何从模态视图控制器调用呈现视图控制器的方法