如何在 XIB 中指定左、右或标题视图按钮

Posted

技术标签:

【中文标题】如何在 XIB 中指定左、右或标题视图按钮【英文标题】:How to specify the left, right, or title View button in XIB 【发布时间】:2012-11-26 07:40:24 【问题描述】:
    我不想创建自定义导航栏。 我正在推送一个 UIViewController,我想自定义导航栏如何查找该 UIViewController

在故事板中,我们只需指定 segue 并在屏幕上显示导航栏。我们只需要左右拖拽 UIBarItem 即可。

在 XIB 中,navigationBar 根本不显示。

我可以添加导航项,但我添加的一项被忽略了。

我听说曾经有一个名为 navigationItem 的插座,但由于我不知道的原因已被弃用。 我可以添加 UINavigationBar,但是那将添加我自己的自定义栏。我想要 UINavigationController 提供的导航栏。

【问题讨论】:

【参考方案1】:

故事板设计器中导航栏的外观只是为了说明当您在 UINavigationController 中加载 ViewController 时屏幕的外观。这并不意味着您的应用中实际上有导航控制器。

您需要将UINavigationController 添加到您的故事板(可能作为第一个场景),然后将您的 ViewController 连接到它(作为根视图控制器)。

然后您应该可以在故事板设计器中设置标题,并将条形按钮项拖到导航栏上。

另请参阅this question 的答案。

【讨论】:

我知道。这不是我要问的。我在问如何通过 XIB 设置这些项目。不简单。我环顾四周。没有简单的答案。 另外,即使只是为了说明,我也确实可以在其中添加左右按钮。【参考方案2】:

您可以在代码中设置它。

- (void)viewDidLoad

    [super viewDidLoad];

    self.title = @"Title";
    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back"style:UIBarButtonItemStyleBordered target:self action:nil];
    self.navigationItem.rightBarButtonItem = "Create button" ;
    self.navigationItem.leftBarButtonItem =  "Create button" ;
    self.navigationItem.titleView =  "Create custom title view";

【讨论】:

我知道如何在代码中设置,我想知道如何在 XIB 中正确设置【参考方案3】:

我认为这是苹果希望实现的实际方式。

放置 UINavigationBar

将出口设置为 UINavigationItem

这就是问题

覆盖 navigationItem 属性以返回您创建的 UINavigationItem。

就是这样。

-(UINavigationItem *) navigationItem

    return self.navigationItem1;

如果您的 navigationItem 仍在 UINavigationBar 中,我认为您也需要有一个强大的 UINavigation Bar 出口。如果我在这里错了,请纠正我。

【讨论】:

以上是关于如何在 XIB 中指定左、右或标题视图按钮的主要内容,如果未能解决你的问题,请参考以下文章

在另一个 XIB 中指定类时如何使用 Custom View.xib 加载自定义视图?

如何在另一个视图中加载 xib 文件?

如何实现 .xib 文件按钮操作? [关闭]

按下按钮时如何加载另一个xib

如何控制 .xib 视图

如何从xib父视图获取子视图