2013-04-02 62 views
0

我已經開發了一個應用程序的ios,使用uitabbar。在tabbar我有一些uitableview導致一些uiview。例如:如何在uitabbar中彈出視圖?

答:的TabBar按鈕 - > B:表視圖 - > C:查看相對於由用戶

hitten表視圖的線使用TabBar的正常行爲是,如果我點擊直到我已經表示爲「C」的視圖,然後點擊另一個Tabbar按鈕,然後點擊返回到我所指示的Tabbar按鈕,如「A」,我發現打開了視圖「C」而不是「B」(表格由tabbar按鈕調用的視圖)。 現在我想讓tabbar始終引導它的第一個視圖(在這種情況下B,即使用戶點擊了C) 爲了做到這一點,我在我的appdelegate中使用了這段代碼,以確保它具有相同的即使在「更多按鈕」的情況下也是如此。

UITabBarController* tabBarController2 = (UITabBarController*)self.window.rootViewController; 

if ([viewController isKindOfClass:[UINavigationController class]]) { 
    [tabBarController2.selectedViewController popToRootViewControllerAnimated:NO]; 
} 
if (tabBarController2.selectedIndex < 4) { 
    [tabBarController2.moreNavigationController popViewControllerAnimated:NO]; 
} 

有時,當它試圖彈出時,應用程序崩潰。我究竟做錯了什麼?

[tabBarController2.selectedViewController popToRootViewControllerAnimated:NO]; 

火災此警告 「AppDelegate.m:27:10: '的UIViewController' 可以不響應 'popToRootViewControllerAnimated:'」

+1

警告意味着你嘗試調用* popToRootViewControllerAnimated *上* UIViewController *而不是* UINavigationController * – rdurand

+0

你仍然與tabbar的:) –

+0

呀!我確信這個問題已經解決了,但是在測試過程中開始崩潰了......這是一個永無止境的故事...:_( –

回答

3

的一種方式,我建議你的是,在下面的代碼你的UIView viewWillDisapear方法寫:

[self.navigationController popToRootViewControllerAnimated:NO]; 
+0

完美工作!我已經試驗過沒有更多的崩潰!非常感謝! –

+1

聽起來不錯!:) –

1
popToRootViewControllerAnimated: 

這是的UINavigationController的方法類,並且您正在使用它作爲UITabBarController,它是實際上是UIViewController的子類。

嘗試:

[(UINavigationController *)tabBarController2.selectedViewController popToRootViewControllerAnimated:NO]; 
+0

)你是對的..它是乾淨的嗎?沒有等效的方法(或者它的方法) uiviewcontroller?去嘗試!! –

+0

所以它工作????? –

+0

沒有警告,但仍然崩潰-3 –