用于初始化UINavigationItem的习惯用法

oro*_*ome 4 xcode interface-builder xib uinavigationitem

由于UIViewController不再使用navigationItem出口(是的,我有点落后),指定a的元素的正确用法是UINavigationItem什么?

我已经看到了几种方法,但没有一种方法对我来说完全清楚:

  1. 在视图控制器的XIB中"将导航项嵌入视图控制器".

  2. 使用from-scratch值在代码中初始化导航项的属性.

  3. 在视图控制器中为导航控制器创建一个插座,连接视图控制器的XIB中的导航项,并使用其属性在代码中初始化(实际)导航项的属性.

不清楚如何"嵌入"导航项(简单地将其添加为IB中的视图控制器的子项无效); 我不清楚哪种方法更好,或者就此而言,在哪里(以什么方法)做2或3.

hoh*_*oha 7

1)如果控制器是在XIB中创建的,你可以放弃UINavigationItem它并调整这个项目 - 它会起作用.例如,当您UINavigationControler在XIB中定义时,可以将一些控制器放在根视图控制器中.所以你可以UINavigationItem在XIB中拥有这个控制器.

2)如果控制器负载是视图从XIB(它是由创建alloc,然后initinitWithNibName:bundle:)它的在XIB仅作为File's Owner不支持UINavigationItem在它.在这种情况下,您应该在代码中配置导航项(我viewDidLoad通常会这样做).没有必要创建它,它已经存在于navigtionItem控制器的属性中

self.navigationItem.title = @"Price List";
Run Code Online (Sandbox Code Playgroud)

也许有可能为导航项目做出口,但我不建议这样做.苹果公司宣称这样的出口已经过时了.我记得有一天我和同事讨论过这个问题,但我忘记了它是什么(当时很明显).