UIBarButtonItem在使用Storyboard时打开新视图

时间:2013-05-22 22:19:29

标签: iphone uiview storyboard uibarbuttonitem uitoolbar

我需要以编程方式创建UIToolbarUIBarButtonItem。我正在使用Storyboard进行布局。 现在如何通过按下以编程方式创建的工具栏按钮打开新视图? (我知道如何在界面生成器中创建按钮时使用Segue,但我不能在这里使用此方法。)

2 个答案:

答案 0 :(得分:1)

创建UIBarButtonItem时,请确保设置目标和操作。然后在被调用的方法中,显示您的下一个视图控制器。

创建栏按钮项目。

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonItemStylePlain target: self action: @selector(presentVC:)];

呈现视图控制器。

-(void)presentVC:(id)sender
{
    [self presentViewController: otherViewController animated: YES completion:^{
        // COMPLETION BLOCK
    }];
}

答案 1 :(得分:1)

首先,使用以下代码创建UIBarButtonItem

UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonItemStylePlain target: self action: @selector(showNewView)];

然后,

-(void)showNewView
{
  UIStoryboard *story =[UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
  UIViewController *newViewController = [[postDetailViewControllerIphone alloc]init];
  newViewController=[story instantiateViewControllerWithIdentifier:@"newView"];
  [self presentViewController:newViewController animated:YES completion:nil];

}

此代码将允许barButtonItem打开新的视图控制器。

如果你还没有将barButtonItem添加到工具栏,那么在创建barButtonItem后执行此操作。

NSArray *toolBarItems = [[NSArray alloc] initWithObjects:barButtonItem,nil];
[self.toolBar setItems:bottomtoolBarItems];

这会将barButtonItem添加到工具栏中。