iOS如何显示新的UIView?
问题描述:
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];
应用程序崩溃。我究竟做错了什么 ?请指出。
答
这...
[self.view.window addSubview:vcontroler.view];
...是一个非常糟糕的策略(和我认真地希望我知道,人们发现它显示的看法的一种方式)。如果你创建一个视图控制器,你应该使用它,而不是仅仅把它视为一个临时容器,你可以将视图从视图中分离出来。
如果您想vcontroler
看起来像您的第一个控制器(并且您有UINavigationController
)的孩子,请使用pushViewController:animated:
。否则,您可以使用presentModalViewController:animated:
将其显示为模式。
如果您只想将视图添加到现有显示中,请将视图置于ViewController
的层次结构中并显示/隐藏它。
如果你绝对必须有它作为ViewController
子控制器,那么你需要一个参考保持它和管理其所属的控制器内的生命周期。
Phillip,谢谢你的回复。你是否展示了如何实现的一些信息:“如果你只想添加一个视图到现有的显示中,把视图放在ViewController的层次结构中并显示/隐藏它。” – Whoami 2012-08-06 12:57:29
由此,我的意思是将视图添加到ViewController的.xib文件中的子视图并将其标记为隐藏。点击按钮可将视图的“隐藏”属性设置为NO。 – 2012-08-06 13:31:44