我是新來的Objective-C,和我正在尋找關於如何管理多個視圖控制器一些建議。Objective-C的管理多個視圖控制器
我已經查看了他們的內置容器視圖控制器類的Apple文檔,他們都不是我正在尋找 - 最接近的是NavigationController,但即使這似乎有點關閉。
我想要實現的一系列ViewControllers的 - 它們使用xibs他們的接口 - 從一個根據接下來的一系列規則的過渡。例如,在應用加載時,我們會看到本地存儲中是否有userId
- 如果我們不存在,請顯示註冊屏幕。接下來,有一個按鈕(說)命令出租車 - 如果該按鈕被點擊,顯示確認屏幕。
另外可選另外:我認爲這不符合導航控制器的原因是流程看起來不是層次結構,而是一種分枝和線性。一個具體的例子是我不需要導航欄返回,這似乎是導航控制器上的標準。但我不太瞭解NavigationController,無法確定它是否適合此用例。
我一直在用各種方法破解這個。例如,在一個IBAction爲處理程序中,我使用此代碼過渡到一個新的視圖控制器中:
UIViewController *view = [[UIViewController alloc] initWithNibName:@"CCWConfirmViewController" bundle:nil];
view.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:view animated:YES completion:nil];
而且,在我的窗口的「根」視圖控制器(我設置是SignupViewController)initWithNibName,我返回不同的視圖控制器不是一個要求,根據本地存儲的呼叫我前面提到的結果:
if (currentUser.userId) {
// Instead of returning the SignupViewController, like was asked,
// return the MainViewController, since signup isn't needed for existing
// users.
CCWMainViewController *mvc = [[CCWMainViewController alloc] init];
return mvc;
我看起來像我必須做一些錯誤的(第二黑客建立而產生警告,因爲我正在返回一個指向錯誤類型的指針)。任何人都知道更好的方法?畢竟是我的NavigationController,而我只是誤解了它的目的?我只需要實現一個自定義容器來充當我的RootViewController並管理這些其他ViewControllers?
嘿,我真的很喜歡這個。看起來編譯器並不喜歡這個:[self。查看addSubview:mvc.view.frame] - 它應該是[self.view addSubview:mvc.view](沒有'幀'調用結束)? –
對不起,我的壞!複製粘貼的副作用:)你是對的,請看我的編輯我的答案。 – Suhas