【发布时间】:2011-09-16 16:54:34
【问题描述】:
所以我有一个 UITabBarController 应用程序,我想显示一个登录页面,所以我做到了:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userDidLogin:) name:UserDidLoginNotification object:nil];
LoginViewController* loginViewController = [[LoginViewController alloc] init];
self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:0];
[self.tabBarController.selectedViewController presentModalViewController:loginViewController animated:NO];
[loginViewController release];
在我的 LoginViewController 中,我还可以显示另一个 modalViewController:
- (void) twitterLogin: (UIViewController *) askingView
{
UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine: _twitter delegate: self];
if (controller) {
self.askingView = askingView;
[askingView presentModalViewController: controller animated: YES];
}
}
我有以下方法,其中askingView 是LoginViewController, 当我想解雇这个时,我会这样做:
[self.askingView dismissModalViewControllerAnimated:YES];
[[NSNotificationCenter defaultCenter] postNotificationName:UserDidLoginNotification object:nil];
但是,这不会关闭 LoginViewController 并显示 UITabBarController 视图。它只是关闭了从 LoginvVIewController 显示的我的 modalViewController。我在这里做错了什么?我也收到以下错误:
attempt to dismiss modal view controller whose view does not currently appear. self = <LoginViewController: 0x2aff70> modalViewController = <SA_OAuthTwitterController: 0x2d2a80>
2011-09-16 09:45:37.750 VoteBooth[4614:707] attempt to dismiss modal view controller whose view does not currently appear. self = <MainViewController: 0x29fec0> modalViewController = <LoginViewController: 0x2aff70>
【问题讨论】:
标签: iphone objective-c ipad modalviewcontroller