我的控制器层次结构:
在我的tabbasecontroller中,我有一个导航栏按钮,它将带有presentModalViewController方法的子类控制器翻转到第二个UITabBarController。
所以我的问题是:为什么不
self.parentViewController
在第二个UITabBarController中工作?这是零。
我在第二个UITabBarController中的viewDidLoad方法中尝试这个:
if (self.parentViewController == nil) {
NSLog(@"Parent is nil");
}
已更新
这是UITabBarController中带有navigationItemButton的方法,用于显示它
-(IBAction)openModalTabController:(id)sender {
if (self.nvc == nil) {
ModalTabController *vc = [[ModalTabController alloc] init];
self.nvc = vc;
[vc release];
}
[self presentModalViewController:self.nvc animated:YES];
}
这是我以模态方式呈现的控制器(UITabBarController):
部首:
@interface NewBuildingViewController : UITabBarController {
}
@end
主:
@implementation NewBuildingViewController
- (id)init {
[super initWithNibName:nil bundle:nil];
ViewController1 *vc1 = [[ViewController1 alloc] init];
ViewController2 *vc2 = [[ViewController2 alloc] init];
ViewController3 *vc3 = [[ViewController3 alloc] init];
NSArray *controllers = [[NSArray alloc] initWithObjects:vc1, vc2, vc3, nil];
[vc1 release];
[vc2 release];
[vc3 release];
self.viewControllers = controllers;
[controllers release];
self.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
return self;
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
return [self init];
}
@end
我还想补充一点,当翻转时,此消息会显示在控制台中(警告):
使用两阶段旋转动画。要使用更平滑的单阶段动画,此应用程序必须删除两阶段方法实现。 旋转多个视图控制器或视图控制器而不是窗口代理时,不支持使用两阶段旋转动画
答案 0 :(得分:1)
如果您要展示如何呈现第二个UITabBarController将会很有帮助。您是否忽略了UITabBarController类引用中的以下警告?
部署标签栏界面时,必须将此视图安装为窗口的根目录。与其他视图控制器不同,标签栏界面永远不应该作为另一个视图控制器的子项安装。