Ios4 iOS如何显示新的UIView?

Ios4 iOS如何显示新的UIView?,ios4,xcode4.3,iphone-sdk-4.3,Ios4,Xcode4.3,Iphone Sdk 4.3,iOS开发新手。如果我错了,请纠正我 我有一个UIWindow,rootviewcontroller是: @interface ViewController : UIViewController { IBOutlet UIButton *but; } @property (nonatomic, strong) UIButton *but; -(IBAction) butButtonPressed; @end ie:如果我将此Viewcontroller设置为根视图控制器,则会显示View

iOS开发新手。如果我错了,请纠正我

我有一个UIWindow,rootviewcontroller是:

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

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

@end
ie:如果我将此Viewcontroller设置为根视图控制器,则会显示Viewcontroller中可用的UIView。明白

我创建了一个从UIViewController继承的新类及其.xib文件

因此,xib文件名为:view1.xib

我的目标是在按下按钮时显示此视图

现在我已经创建了一个按钮,button press调用button Pressed。在butButtonPressed的内部,我做了以下操作

  myViewController *vcontroler = [[ViewController alloc] initWithNibName:@"view1" bundle:nil];
    [self.view.window addSubview:vcontroler.view];
应用程序崩溃。我做错了什么?请指出

这个

[self.view.window addSubview:vcontroler.view];
…是一个非常糟糕的策略(我真希望我知道人们在哪里发现它是一种表达观点的方式)。如果创建视图控制器,则应该使用它,而不是将其视为可以从中提取视图的临时容器

如果希望
vController
看起来像第一个控制器的孩子(并且您有一个
UINavigationController
),请使用
pushViewController:animated:
。否则,您可以使用
presentModalViewController:animated:
将其显示为模态

如果只想将视图添加到现有显示中,请将视图放入
ViewController
的层次结构中,然后显示/隐藏它


如果您绝对必须将其作为
ViewController
的子控制器,则需要保留对其的引用,并在所属控制器内管理其生命周期。

Phillip,感谢您的回复。你是否对如何实现这一点有所说明:“如果你只想在现有的显示中添加一个视图,请将该视图放在ViewController的层次结构中,并显示/隐藏它。”我的意思是将该视图作为子视图添加到
ViewController的.xib文件中,并将其标记为隐藏。点击按钮将视图的
隐藏属性设置为NO。