我知道這個問題已經被許多用戶詢問過,但我沒有找到適合我的問題的解決方案。'試圖彈出到不存在的視圖控制器
我正在使用splitViewController
,我已隱藏我的rootViewController
和detailViewController
我推動並彈出不同的ViewControllers
。
當我從導航到ViewController-1
其ViewController-2
去罰款,當我從viewController-2
再次使用[self.navigationController popViewControllerAnimated:NO ];
其做工精細返回回ViewController-1
。
現在,當我從ViewController-2
導航到ViewController-3
並返回到ViewController-2
其工作正常。
但是現在,當我從ViewController-2
返回ViewController-1
時,它正在因以下錯誤而崩潰。
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Tried to pop to a view controller that doesn't exist
我已啓用殭屍對象。我的應用程序 image
代碼下面給出: 1.AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.splitViewController =[[UISplitViewController alloc]init];
// create master and detailViewController for splitView
self.rootViewController=[[RootViewController alloc]init];
self.detailViewController=[[LoginViewController alloc]initWithNibName:@"LoginViewController" bundle:nil] ;
//create navigation controller for root and detailViewController
self.rootNav=[[UINavigationController alloc]initWithRootViewController:rootViewController];
self.detailNav=[[UINavigationController alloc]initWithRootViewController:detailViewController];
//make hide navigation bar
self.rootNav.navigationBarHidden = YES;
self.detailNav.navigationBarHidden = YES;
//set splitViewController with root and detail viewController
self.splitViewController.viewControllers=[NSArray arrayWithObjects:self.rootNav,self.detailNav,nil];
self.splitViewController.delegate=self.detailViewController;
// Now Add the split view controller's view to the window and display.
[self.window addSubview:self.splitViewController.view];
self.window.rootViewController = self.splitViewController;
[self.window makeKeyAndVisible];
return YES;
}
2.push和流行ViewControllers
push()
{
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
MyViewController *Vc = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[appDelegate.detailNav pushViewController:Vc animated:NO];
}
pop()
{
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
[appDelegate.detailNav popViewControllerAnimated:NO];
}
你可以發表一些代碼?你的描述看起來不錯。 – Rashad
@walinaqvi,請張貼一些代碼,你很好地解釋了你的問題。這很可能是你沒有正確推動某處 – Pavan
當然,這裏是我的代碼,用於推送新的viewController我使用:[self.navigationController pushViewController:MyViewContrller animated:NO]; 彈出Viewcontroller i;'m使用:[self.navigationController popViewControllerAnimated:NO]; –