2012-08-06 56 views
0

iOS開發新手。如果我錯了,請糾正我?iOS如何顯示新的UIView?

我有一個UIWindow,和RootViewController的是:

@interface ViewController : UIViewController 
{ 
IBOutlet UIButton *but; 
} 

@property (nonatomic, strong) UIButton *but; 
-(IBAction) butButtonPressed; 

@end 

即:如果我使這個視圖控制器作爲根視圖控制器,即,可以在ViewController中顯示了UIView。瞭解。

我已經創建了一個從UIViewController繼承的新類,以及它的.xib文件。

所以廈門國際銀行文件的名稱是:view1.xib,

我的目標是當按下按鈕時,顯示了這一觀點。

現在我創建了一個按鈕和按鈕按下調用butButtonPressed。在butButtonPressed裏面,我做了以下。

myViewController *vcontroler = [[ViewController alloc] initWithNibName:@"view1" bundle:nil]; 
    [self.view.window addSubview:vcontroler.view]; 

應用程序崩潰。我究竟做錯了什麼 ?請指出。

回答

1

這...

[self.view.window addSubview:vcontroler.view]; 

...是一個非常糟糕的策略(和我認真地希望我知道,人們發現它顯示的看法的一種方式)。如果你創建一個視圖控制器,你應該使用它,而不是僅僅把它視爲一個臨時容器,你可以將視圖從視圖中分離出來。

如果您想vcontroler看起來像您的第一個控制器(並且您有UINavigationController)的孩子,請使用pushViewController:animated:。否則,您可以使用presentModalViewController:animated:將其顯示爲模式。

如果您只想將視圖添加到現有顯示中,請將視圖置於ViewController的層次結構中並顯示/隱藏它。

如果你絕對必須它作爲ViewController子控制器,那麼你需要一個參考保持它和管理其所屬的控制器內的生命週期。

+0

Phillip,謝謝你的回覆。你是否展示瞭如何實現的一些信息:「如果你只想添加一個視圖到現有的顯示中,把視圖放在ViewController的層次結構中並顯示/隱藏它。」 – Whoami 2012-08-06 12:57:29

+0

由此,我的意思是將視圖添加到ViewController的.xib文件中的子視圖並將其標記爲隱藏。點擊按鈕可將視圖的「隱藏」屬性設置爲NO。 – 2012-08-06 13:31:44