2010-02-21 217 views
1

好的,我已經閱讀了書籍上的所有書籍,並帶有閱讀蘋果文檔的多個視圖控制器和自己的鳥嘴。視圖控制器

我的問題是這樣的:所有的例子顯示通過工具欄或標籤欄顯示的多個視圖。用戶點擊其中一個按鈕,顯示一個新的視圖(保持顯示標籤/工具視圖欄),然後他們可以點擊標籤/工具欄上的另一個按鈕並轉到另一個視圖。

這是唯一可行的方法嗎?如果我想要在屏幕中間有三個按鈕的主屏幕(Play Game,Rules,High Scores),並且點擊時,讓它顯示正確的筆尖文件,只能通過工具欄/標籤欄?如果是這樣,在一些不存在的應用程序中,這是因爲它「隱藏」了嗎?

我知道這可能是最基本的事情之一,但我似乎無法理解這一點。

我已閱讀過關於視圖,子視圖等內容,並且在我繼續時似乎越來越困惑。如果我在這裏完全脫離基地,是否有一個例子在那裏會有這樣的事情:

mainViewController,與筆尖有3個按鈕 點擊任何按鈕將調用另一個單獨的視圖與自己的筆尖。在這個觀點上,我可以做任何想做的事情,然後有一個按鈕讓我回到mainViewController。

任何幫助/示例與此非常感謝。

地理...

回答

1

你並不需要使用一個UINavigationController做到這一點...

這是我能想到的,做到這一點的方法之一。假定:

mainMenuViewController - 你的觀點,即具有3個按鈕

view1ViewController控制器 - 您的其他視圖的第一

view2ViewController - 你的其它視圖

view3ViewController第二 - 第三您的其他視圖

讓您的按鈕調用view1 mainMenuViewController創建UIViewController,然後從自己的窗口,例如:

YourAppApplicationDelegate *delegate = (YourAppApplicationDelegate*)[[UIApplication sharedApplication] delegate]; [self.view removeFromSuperview]; [delegate.window addSubview:view1ViewController.view];

你可以做同樣的,在每個那些二級視圖控制器的「返回主菜單」按鈕。

+0

請問 [delegate.window addSubview:view1ViewController]; 然後顯示視圖?如果是這樣,先前顯示的視圖仍然存在?它隱藏了嗎? – George 2010-02-21 19:34:25

+0

我犯了一個錯字,應該是[delegate.window addSubview:view1ViewController.view] ;.這是做什麼是view1ViewController的視圖添加到窗口。 [self.view removeFromSuperview];從窗口中移除調用UIViewController的視圖。你基本上是在交換它們。 – ChrisW 2010-02-21 19:51:46

+0

儘管如此,您可以用相同的方法將它們交換回主菜單。在用戶按下「主菜單」按鈕時調用的任何方法,都會從窗口中刪除當前視圖,並將主菜單視圖控制器的視圖添加回來。 – ChrisW 2010-02-21 19:52:42

0

你可以去利用的UIViewController的presentModalViewController/dismissModalViewControllerAnimated方法一樣,爲爲例您的視圖之間回:

- (IBAction)button1IsPressed:(id)sender { 
    UIViewController *controller1; 
    [controller1 setDelegate:self]; 
    [self setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; 
    [self presentModalViewController:controller1 animated:YES]; 
    [controller1 release]; 
} 

- (void)dismissViewController { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

而且回去在控制器1調用這個函數:

[self.delegate dismissViewController]; 

這只是一個例子,你可以做一些改進。

相關問題