0

我有一个叠加层,其中我创建了一个包含完成按钮的工具栏。完成按钮的选择器名称为 doneButtonPressed。

现在,当我单击完成按钮时,如何获得新的 nib 视图?假设我创建了一个名为 TestViewController 的 nib。

-(void)doneButtonPressed {

//What goes here?

}
4

1 回答 1

0

如果要从 nib 实例化 UIViewController,可以使用以下代码行:

UIViewController *viewControllerName = [[UIViewController alloc] initWithNibName:(NSString *) bundle:(NSBundle *)];

然后,您可以使用以下方式呈现视图:

[self presentModalViewController:(UIViewController *) animated:(BOOL)];

现在,如果您正在使用情节提要,那么您可以从情节提要对象中实例化视图控制器。

不确定这是否是您正在寻找的,但您可以将您的视图变成“容器视图”。为此,您需要创建子视图,然后将它们切换出去。当我想要一个菜单​​来控制不同的视图时,我这样做了。

[self.view insertSubview:(view you want to insert) atIndex:0];

然后当你想把它关掉时:

[[[self.view subviews] objectAtIndex:0] removeFromSuperview];
[self.view insertSubview:(view you want to replace with) atIndex:0];

已编辑

UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonPressed:)];

- (void)doneButtonPressed {

SkipQViewController *skipQ = [[SkipQViewController alloc] initWithNibName:@"Name" bundle:bundleName];
[self presentModalViewController:skipQ animated:YES];
}

如果这不起作用,请尝试使用:SkipQViewController *skipQ = [[SkipQViewController alloc] init];实例化您的视图控制器。

-编辑-

像这样实例化视图控制器:SkipQViewController *skipQ = (SkipQViewController *)[[UIViewController alloc] initWithNibName:@"sqvc" bundle:nil];

于 2012-07-31T18:07:06.773 回答