ViewController是否可以模态使用NavigationController的工具栏

时间:2012-03-08 11:08:52

标签: ios modalviewcontroller uitoolbar

我正在尝试从导航控制器层次结构中的视图控制器以模态方式呈现UITableViewController。模态视图应显示工具栏。

导航控制器的托管工具栏是否可以在模态呈现的视图控制器中使用,还是应该为这些工具栏实现自己的工具栏?

  • 如果我以[self.navigationController presentModalViewController:filterVC animated:YES];模态显示控制器,则不显示任何工具栏。
  • 如果我按下控制器:[self.navigationController pushViewController:filterVC animated:YES];,则会显示工具栏。

这是我从UITableViewController的init方法运行的方法。

    -(void)configureToolBar {

    [self.navigationController setToolbarHidden:NO animated:YES];

    //ToolbarItem Done
    UIBarButtonItem *doneItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                              target:self 
                                                                              action:@selector(doneButtonPressed)];

    //ToolbarItem Cancel
    UIBarButtonItem *cancelItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel 
                                                                                target:self
                                                                                action:@selector(cancelButtonPressed)];
    //Flexible Space
    UIBarButtonItem *flexibleItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

    self.toolbarItems = [NSArray arrayWithObjects:flexibleItem, cancelItem, doneItem, flexibleItem, nil];

    [doneItem release];
    [cancelItem release];
    [flexibleItem  release];
}

2 个答案:

答案 0 :(得分:2)

您必须将VC嵌入到新的UINavigationController中并再次设置工具栏项,或者只需将UIToolbar添加到VC的底部。

答案 1 :(得分:2)

不,你不能,因为模态视图控制器成为显示它的视图控制器的子视图,并且该视图控制器是导航控制器的子视图(即模态视图与NavigationController没有连接& #39; s层次结构)。但是,您可以将导航控制器显示为模态视图控制器,这样您就可以将自定义导航栏按钮传递给它。