2012-01-02 81 views
1

我花了年齡停留在此:使用標籤欄模板(不包括故事板)我可以標籤之間輕鬆切換每個表中視圖之間切換,但是當談到在UITabBarControllerUIViewController之間切換,無論我繼續嘗試的任何代碼是行不通的。一個的UITabBarController和一個UIViewController(iOS版的Xcode)之間切換

-(IBAction)tabtoview:(id)sender{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.5]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp 
          forView:self.view 
          cache:YES]; 
    [self.tabBarController removeFromParentViewController]; 
    [self.view addSubview:self.mainscreen]; //Crashes here 
    [UIView commitAnimations]; 
} 

比除去tabBarController相反,它將是優選的,如果我能隱藏/具有動畫後禁用它。任何幫助表示感謝,謝謝!

+0

什麼是錯誤消息當它崩潰? – carbonbasednerd 2012-01-02 13:51:20

+0

SIGABRT - '終止應用程序由於未捕獲的異常「NSInvalidArgumentException」,原因:「 - [UIViewController中上海華]:無法識別的選擇發送到實例0x6dae9f0'' – Nightfa11 2012-01-02 14:22:49

回答

2

我覺得你的問題是,UITabBarControllerUINavigationController是那些那種無法處理你正在做的方式控制器。

您最好將UIWindow轉換爲app delegate並將-(IBAction)tabtoview:(id)sender;方法轉換爲UIWindow的子類。我嘗試過,它的工作原理。

原因是,你必須有一個控制器來負責切換視圖。你要做的是交換控制器,而不是視圖。這是一個衝突。標籤是UITabController的一部分,它們不是視圖! UINavigationController也是一樣的故事。因此,如果您只是交換視圖,您可以在您的某個viewControllers中正確操作,但是應該在更高級別(即應用程序委託)中處理控制器與另一個控制器(即UIViewcontrollerUITabBarController)的處理。該級別唯一可用的實例是您的UIWindow

0

爲什麼不使用

UIView *v = [[UIView alloc] initWithFrame:[[UIApplication mainScreen] bounds]]; 
[self presentModalViewController:v animated:YES]; 

,我認爲它應該工作

相關問題