2012-11-23 39 views
0

我是iOS新手。大部分都是在Android上開發的。目前接管了一個iOS應用程序,我必須更新幾個功能。在TabBar應用程序中從ActionSheet顯示NavigationController

此應用程序基於TabBar。幾個導航控制器被推入到標籤欄中,以管理它們之間的切換。但是現在,其中一個選項卡會打開一個ActionSheet並帶有幾個選項。

我必須在其中一個ActionSheet按鈕上單擊打開一個新的NavigationController。

這裏是用戶點擊確定哪一個按鈕一個片段:

switch (buttonIndex) { 
    case 0: 
     [self openMyNavigationController]; 
     break; 
    case 1: 
     break; 
    case 2: 
     break;    
    default: 
     break; 
} 

我不知道該openMyNavigationController方法應該是什麼樣子

開始像這樣:

UIViewController *myViewController = [[MyViewController alloc ] nitWithNibName:@"MyViewController" bundle:nil]; 

UINavigationController *navMyViewController = [[UINavigationController alloc] initWithRootViewController:myViewController]; 

什麼都要我確實在屏幕上顯示新創建的NavigationController?

+0

這將隱藏您的TabBar,或者它會在一個標籤中,並將其放入您的導航堆棧?或者你模擬地呈現它? – Dave

+0

我無法隱藏標籤欄。如果可能,操作表應在導航堆棧項目之間切換。或者我可以以模態方式呈現它?但我該如何實現這一目標?我有一種感覺,客戶需要反對本地系統的方法,但是我沒有理由拒絕。 –

回答

0

我掛一個新NavigationController到選項卡項目。我也打開該選項卡的ActionSheet菜單,這基本上是客戶想要的,但從用戶的視線最終是愚蠢的,因爲到另一個ViewControllers的按鈕應該放在新打開的選項卡上...我希望客戶改變主意。

1

如果我正確理解你的問題,我想你需要

[self.navigationController pushViewController: myViewController animated:YES]; 

新的視圖控制器推送到導航堆棧。

但我認爲你爲你的應用程序設計的是錯誤的,好吧,不是iOS標準。 Tabbar並不是用來「做一個動作」的按鈕(我也做了一些android項目,但它不同,如果你真的想做一個按鈕,你需要使用工具欄而不是標籤欄),它是用於切換頁。我認爲你需要閱讀iOS User Interface。希望這是有幫助的。

+0

我已經獲得了一些理解,我同意這不是系統的工作原理。不幸的是,這個應用程序從其他人開始寫得很糟糕,我沒有時間徹底改進它。如果有什麼方法可以讓動作表按鈕切換我的視圖我必須使用 –

+0

這個想法如何?當你點擊該選項卡時,你會看到一個包含四個風格良好按鈕的頁面(可能像圖標)。你點擊其中的一個推視圖控制器?然後一切都解決了。你的行動表是爲了推動不同的頁面? :) – brianLikeApple

+0

那麼問題是什麼?推視圖控制器不起作用? – brianLikeApple

1

可以呈現navigationController有RootViewController的模態:

[self presentModalViewController:navController animated: YES]; 
+0

自我將是一個viewController,也許是你提交動作表的那個人。 – Dave

+0

我這樣做:[self.navigationController presentModalViewController:myViewController animated:YES];但沒有任何反應 –

+0

不要調用NavigationController,在頂部viewController上調用它。 – Dave

相關問題