【发布时间】:2014-05-03 07:09:14
【问题描述】:
好的,我有一个带有按钮的视图控制器。当按下该按钮时,我有另一个将以模态方式呈现的视图控制器。我想将该视图控制器嵌入到导航控制器中,但这不能以编程方式完成,导航控制器需要在 xib 中。
在我的 xib 中,我有两个对象:导航控制器和一个包含所有视图控制器内容的视图对象。导航控制器的视图控制器将其视图属性设置为我的视图对象。
我的问题是,在我的父视图控制器中,我试图用这段代码呈现模态
self.modalController = modalController.new;
self.modalController.delegate = self;
[self presentViewController:self.modalController animated:YES completion:NULL];
然后我得到了这个崩溃:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present modally an active controller <ParentController: 0xXXXXXXXX>.'
这让我很困惑,我似乎无法弄清楚如何通过它。我知道这可以通过以编程方式设置导航控制器来实现,但我不能使用该路由来解决这个问题。有什么想法吗?
【问题讨论】:
-
查看一些基础教程,它非常基础。检查这个link
-
self.modalController = modalController.new;- 此语法无效。应该是self.modalController = [YourModalControllerClass new];。我还发现使用UINavigationController最容易以编程方式(或通过情节提要)进行。为什么你必须使用 xib? -
由于我项目中的其他设置元素,恐怕它在 xib 中是目前唯一的选择。它只是令人沮丧,因为我知道这就像你说的那样以编程方式工作。
-
在情节提要中使用情节提要 ID 来实例化WithStoryboardId 方法。
标签: ios objective-c xcode ios7