2012-07-31 28 views
0

我有一个叠加层,其中我创建了一个包含完成按钮的工具栏。 完成按钮的选择器的名称是doneButtonPressed。如何从barbuttonitem切换视图?

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

-(void)doneButtonPressed { 

//What goes here? 

} 
+0

你想暂时模式的看法,或者一个全新的看法? – 2012-07-31 16:54:10

+0

你正在使用什么样的导航控制器? – AAV 2012-07-31 16:55:00

+0

我想要一个全新的视图,并记住我不想使用导航堆栈。条形按钮位于我访问相机时出现的工具栏覆盖图上。当我点击完成时,我将把视图定向到一个TableViewController。所以你可以想象我更喜欢什么。 – 2012-07-31 18:30:10

回答

0

如果想要实例从笔尖一个UIViewController你可以使用下面的代码行:

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

现在:

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

然后你就可以与模态呈现视图如果您正在使用故事板,那么您可以从故事板对象实例化视图控制器。

不知道这是你在找什么,但你可以把你的视图变成一个“容器视图”。要做到这一点,你需要创建子视图,然后将它们切换出来。当我想要一个菜单​​来控制不同的视图时,我这样做了。

[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]; 

EDITED

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];实例化视图控制器。

CNC中

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

+0

也没有运气。从barbuttonitem提出新视图的一般格式是什么?我有一种感觉,这很容易,但我觉得我忽视了简单的解决方案。 – 2012-07-31 19:36:03

+0

您可以让按钮延伸到另一个视图控制器,或者您可以让按钮以模态方式调出视图控制器。另一种选择是呈现popover视图,但我不认为这是你想要的。您需要在完成按钮上实施一项操作。将完成按钮连接到IBAction方法。 – 2012-07-31 19:46:19

+0

我还没有通过IB制作按钮,因为我的覆盖图和主覆盖图上的工具栏覆盖层是以编程方式制作的,所以它是以编程方式制作的。所以barbuttonitem也是编程式的。忘记所有这些,假设你已经编写了一个barbuttonitem。你有一个叫做testviewcontroller的nib。您的代码行将从BBI调出testviewcontroller? – 2012-07-31 19:54:05