2012-08-06 82 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