我是iPhone SDK開發新手,我不是英國人,所以我對我的關卡表示歉意。exc_bad_access dismissModalViewControllerAnimated
這裏是我的問題: 我有一個tabBarcontroller,有3項,每個人都有一個navBarcontroller
[self.loginViewController release];
[self setLoginViewController:[[LoginViewController alloc] init]];
[[self loginViewController] setDelegate:self];
[[self loginViewController] isLoggued];
self.tabBarController = [[UITabBarController alloc] init];
_FirstViewController = [[[FirstViewController alloc] init] autorelease];
_FirstViewController.title = @"title 1";
UINavigationController* navController1 = [[[UINavigationController alloc]
initWithRootViewController:_FirstViewController] autorelease];
_SecondViewController = [[[SecondViewController alloc] init] autorelease];
_SecondViewController.title = @"title 2";
UINavigationController* navController2 = [[[UINavigationController alloc]
initWithRootViewController:_SecondViewController] autorelease];
_ThirdViewController = [[[_ThirdViewController alloc] init] autorelease];
_ThirdViewController.title = @"title 3";
UINavigationController* navController3 = [[[UINavigationController alloc]
initWithRootViewController:_ThirdViewController] autorelease];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navController1, navController2, navController3, nil];
[self.window addSubview:self.tabBarController.view];
// adds the tab bar's view property to the window
[self.window makeKeyAndVisible];
[self.tabBarController release];
if ([self respondsToSelector:@selector(loginViewControllerLogout:)]) {
[self performSelector:@selector(loginViewControllerLogout:) withObject:[self loginViewController]];
}
return YES;
這兒,這是選擇
-(void)loginViewControllerLogout:(LoginViewController *)loginViewController {
if (![self.loginViewController logguedIn])
[self.tabBarController presentModalViewController:self.loginViewController animated:YES];
}
,當我loggued,我致電:
-(void)loginViewControllerDidFinish:(LoginViewController *)loginViewController {
[self.loginViewController dismissModalViewControllerAnimated:YES];
}
這段代碼在應用程序啓動時爲冷杉時間。 LoginViewController顯示>登錄成功> LoginViewcontroller關閉> FirstViewController顯示。 但是如果我去第三個控制器,點擊註銷: 選擇器LoginViewControllerLogout調用> LoginViewController顯示>登錄成功>在dismissModal中崩潰。
沒有錯誤堆棧,只是exc_bad_access錯誤。 loginViewController有多個保留。
在此先感謝
編輯:所有的功能都在AppDelegate中
就像我對比爾說,我不能這樣做怎麼把自我是我的AppDelegate *,所以不存在「self.view」 ......感謝您的回覆 – Boubou95
但是,你只會調用呈現內解僱查看,這不會是你的AppDelegate。在這裏調用它,而不是回叫你的AppDelegate去做。 –
同樣的事exc_bad_access。在我的AddDelegate中,我使用:[self dismissModalViewControllerAnimated:YES]在loginViewController中調用一個函數。 – Boubou95