【问题标题】:Can a ViewController presented modally use the NavigationController's toolbar以模态方式呈现的 ViewController 可以使用 NavigationController 的工具栏吗
【发布时间】:2012-03-08 11:08:52
【问题描述】:

我正在尝试从我的导航控制器层次结构中的视图控制器以模态方式呈现 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];
}

【问题讨论】:

    标签: ios modalviewcontroller uitoolbar


    【解决方案1】:

    不,你不能,因为模态视图控制器成为显示它的视图控制器的子视图,而这个视图控制器是导航控制器的子视图(即模态视图与 NavigationController 的层次结构没有联系) .不过,您可以将导航控制器呈现为模态视图控制器,这样您就可以将自定义导航栏按钮传递给它。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-22
        • 2016-11-14
        • 1970-01-01
        • 2011-04-09
        • 2017-07-26
        • 1970-01-01
        • 1970-01-01
        • 2014-05-29
        相关资源
        最近更新 更多