我的控制器層次結構:ParentViewController是零,無論我做什麼
- TabBaseController(的UITabBarController)
- SubclassedController
在我tabbasecontroller我有一個導航欄按鈕,使用presentModalViewController方法翻轉子控制器到第二個UITabBarController。
所以我的問題是:爲什麼不
self.parentViewController
在第二的UITabBarController工作?它是零。
我想這在第二的UITabBarController我viewDidLoad方法:
修訂
這與navigationItemButton中的UITabBarController方法呈現它
-(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
我也想補充一點,此消息顯示在控制檯(警告)翻轉時:
使用兩段旋轉動畫。要使用更平滑的單級動畫,此應用程序必須移除兩階段方法實現。 使用兩級旋轉動畫,不支持旋轉時超過一個視圖控制器或視圖控制器不是窗口委託
你可以檢查你的viewDidLoad被調用*之前*控制器添加到父項?如果您提前訪問視圖屬性可能會發生。 – Eiko 2011-01-09 17:46:52
我懷疑這是由於這個問題,但我會嘗試。 來自Apple: 因爲UITabBarController類繼承自UIViewController類,所以標籤欄控制器具有可通過視圖屬性訪問的其自己的視圖。在部署選項卡欄界面時,必須將此視圖安裝爲窗口的根目錄。與其他視圖控制器不同,選項卡欄界面不應該被安裝爲另一個視圖控制器的子視圖。 – LuckyLuke 2011-01-09 17:50:30