我在获得远程通知后尝试导航到某些ViewController 它在此代码之后崩溃任何帮助请 我的故事板就像这样 SWRevealViewController - > NavViewController - >的UIViewController 我想要达到这个UIViewController
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
UIStoryboard *storyboard =[UIStoryboard storyboardWithName:@"Main" bundle:nil];
// my ViewController I want navigate to UITableViewController call home_tableview
Home_tableView *home =[storyboard instantiateViewControllerWithIdentifier:@"home_view"];
[(UINavigationController *)self.window.rootViewController pushViewController:home animated:NO];
}
我得到的错误
2015-01-20 13:04:14.379 SchoolLink[1304:416727] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
*** First throw call stack:(0x25bd749f 0x3338dc8b 0x25af30b3 0x2909d06b 0x11d48f 0x29099d0f 0x29099a7d 0x2909f953 0x2910643d 0x111dbd 0x2930286b 0x292fa54d 0x2c3680d1 0x25b9dd7d 0x25b9d041 0x25b9bb7b 0x25ae93c1 0x25ae91d3 0x2cee70a9 0x290f8fa1 0x12b7ad 0x3390daaf)
libc++abi.dylib: terminating with
答案 0 :(得分:1)
我认为你的故事板中有UINavigationController
嵌入了你的视图控制器。
如果是这种情况,您的代码应该没有任何问题。
我在一个新项目中测试了它,它有两个视图控制器和一个导航控制器作为初始视图,一切都很好。
如果您确定所有的情节提要标识符都正确,并且initial View
中的Interface Builder
是UINavigationController
嵌入了您的所有ViewControllers
,那么你在其他地方遇到了一些问题,而不是你粘贴的代码。
由于您的错误与insertObjectAtIndex:
有关,我相信有一些数据可以在应用程序的正常工作流程中实现您的UITableViewController(当它转向它时)以及当您尝试将UITableView控制器呈现为干净状态时从通知中,数据丢失,因此崩溃。
检查您尝试将对象添加到给定索引处的数组的位置。
问题出在接收通知的类中(我猜这是你的AppDelegate
类),要么在UITableViewController
类中,要么在初始化的某个地方。
答案 1 :(得分:0)
尝试
Home_tableView *home =[storyboard instantiateViewControllerWithIdentifier:@"home_view"];
[self.window setRootViewController:home]
[self.window makeKeyAndVisible];
答案 2 :(得分:0)
请试试这个:
UIStoryboard *storyboard =[UIStoryboard storyboardWithName:@"Main" bundle:nil];
Home_tableView*svc = [storyboard instantiateViewControllerWithIdentifier:@"home_view"];
// Configure the new view controller here.
[self presentViewController:svc animated:YES completion:nil];