【问题标题】:How do I create a persistent button on the bottom of a navigation controller?如何在导航控制器底部创建一个持久按钮?
【发布时间】:2016-10-13 16:34:21
【问题描述】:

我有一个基于主/细节的 iPhone 应用程序。在不使用选项卡式导航样式应用程序的情况下,如何在导航控制器底部创建一个持久按钮(我希望在每个视图上都有它)。请线框(它的加号按钮)。我尝试在底部的工具栏中添加一个按钮栏项目,但由于某种原因它不会显示。我正在使用 xcode 8 和 ios 10。

作为参考,我创建了一个自定义导航控制器类并插入了以下代码

#import "MainNavigationController.h"

@interface MainNavigationController ()

@end

@implementation MainNavigationController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"Testing");
    // Do any additional setup after loading the view.

    NSMutableArray *buttonsArray = [[NSMutableArray alloc] init];
    UIBarButtonItem *myButton1=[[UIBarButtonItem alloc] initWithTitle:@"button 1" style:UIBarButtonItemStylePlain target:self action:@selector(toolbarButtonPressed1:)];
    [buttonsArray addObject:myButton1];
    UIBarButtonItem *myButton2 = [[UIBarButtonItem alloc] initWithTitle:@"button 2" style:UIBarButtonItemStylePlain target:self action:@selector(toolbarButtonPressed2:)];
    [buttonsArray addObject:myButton2];
    [self setToolbarItems:buttonsArray animated:YES];

    [self.toolbar setBarStyle:UIBarStyleBlack];
    [self.toolbar setItems: buttonsArray animated:NO];

}

然后我使工具栏在界面构建器中可见...工具栏显示并在代码中设置颜色,但按钮不出现

【问题讨论】:

  • “我尝试在底部的工具栏中添加一个按钮栏项目,但由于某种原因它不会显示”如果该解决方案可行,您应该问自己是什么原因。很遗憾,您选择不显示代码,因此无法提供帮助。
  • 你的代码没有意义。导航控制器没有工具栏项;它的孩子做。您需要在此导航控制器的所有子项中设置 self.navigationItem.toolbarItems。我下面的解决方案可能更适合你。

标签: ios uinavigationcontroller uibutton


【解决方案1】:

一个简单的解决方案是将您的 UINavigationController 嵌入到自定义父视图控制器中。这意味着导航控制器的视图是父视图控制器视图的子视图。这意味着您可以添加父视图控制器视图的另一个子视图,即按钮。

【讨论】:

  • 根视图实际上是一个拆分视图控制器,父视图的基类是什么?
  • "根视图实际上是一个拆分视图控制器"。在这种情况下,您可以将拆分视图控制器嵌入到自定义父视图控制器中。在任何情况下,这都不是一件不寻常的事情。当然,你必须考虑你希望这个界面如何在 iPad 上工作(扩展的拆分视图控制器)。
猜你喜欢
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多