我的iOS iPad应用程序有以下结构:
- RootViewController:登录
- @property UITabbar *main(登录成功后加载);
在appDelegate
上我有两个属性:窗口和登录。在第一个我加载UIWindow
和其他LoginViewController (UIViewController)
。并将Login设置为RootViewController。
在登录我有一个名为"main"的属性类型为MainController
(扩展UITabbarController
)。
成功登录后,我使用上面的代码加载main:
[_main setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentViewController:_main animated:YES completion:nil];
MainController在viewDidLoad方法中加载。我有两点:
我需要将self设置为MainController的委托?
这是我的MainController viewDidLoad方法的开始:
[super viewDidLoad];
[self setDelegate:self];
NSLog(@"Parent view controller is: %@", [self parentViewController]);
NSLog(@"Presented view controller is: %@", [self presentedViewController]);
NSLog(@"Presenting view controller is: %@", [self presentingViewController]);
日志为:
2013-01-20 21:23:53.180 MyApp[6304:11303] Parent view controller is: (null)
2013-01-20 21:23:53.181 MyApp[6304:11303] Presented view controller is: (null)
2013-01-20 21:23:53.182 MyApp[6304:11303] Presenting view controller is: (null)
我是否使用了正确的方式来呈现viewController?或者在我点击按钮或登录后显示视图?缺少了什么?我是否正确地使用了视图层次结构?
是否需要一个属性来包含将要呈现的控制器?
我从现在开始欣赏!
app委托和其他控制器的代码是你自己写的吗?如果是这样,那么因为你还没有发布剩下的代码我只能说初始化所有视图控制器。
YourViewControllerNameHere = [[ViewControllerType alloc] init];
或者如果你有nib/xib/storyboard文件,那么
YourViewControllerNameHere = [[ViewControllerType alloc] initWithNibName:youInterfaceFileNameHereWithoutFileType bundle:nil];