因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'应用程序尝试在目标上显示nil模态视图控制器

时间:2012-07-29 14:04:12

标签: ios objective-c

我是iphone的新手,我在按下按钮时尝试打开视图, 在我的班级" ReaderViewController"我写了以下代码:

- (void)tappedInToolbar:(ReaderMainToolbar *)toolbar emailButton:(UIButton *)button
{
#ifdef DEBUGX
NSLog(@"%s", __FUNCTION__);
#endif

#if (READER_ENABLE_MAIL == TRUE) // Option

instantiateViewControllerWithIdentifier:@"searchView"];

if (printInteraction != nil) [printInteraction dismissAnimated:NO]; // Dismiss

SearchViewController *searchController = [self.storyboard instantiateViewControllerWithIdentifier:@"searchView"];


searchController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
searchController.modalPresentationStyle = UIModalPresentationFullScreen;

[self presentModalViewController:searchController animated:YES];


[searchController release];


#endif // end of READER_ENABLE_MAIL Option
}

我想何时打开此控制器的视图" SearchViewController"在故事板中,我给了SearchViewController它的标识符名称" searchView" 但是当我跑步时,它给了我以下例外:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:    'Application tried to present a nil modal view controller on target <ReaderViewController: 0x6864930>.'

任何帮助? 谢谢你提前。

2 个答案:

答案 0 :(得分:1)

在故事板中没有带标识符searchView的视图控制器,因此实例化失败并且

instantiateViewControllerWithIdentifier:

方法返回nil。仔细检查您的Storyboard设置,并注意标识符和名称通常区分大小写,可能您将视图控制器命名为SearchView而不是searchView

也可能是

的情况
self.storyboard

本身未正确初始化或实例化,因此为零。

编辑:所以你是从代码创建故事板,但事实上你并非如此。解决方案是手动实例化UIStoryboard。

至于您自己的评论,您最好分配self.storyboard = Storyboard,否则您将继续收到这些错误...

答案 1 :(得分:0)

我认为self.storyboardnil。这意味着您传递给它的每条消息也会产生nil