self.navigationItem.titleView不适用于选项卡式应用程序模板

时间:2014-03-20 02:14:57

标签: ios uinavigationitem ios7.1

我是iOS新手,但我对此感到非常难过。

步骤:

  1. 在Xcode中,为iPhone创建一个新的选项卡式应用程序。
  2. 进入第一个子视图并将导航栏拖到视图中。
  3. 进入viewDidLoad并添加此项(假设您已将logo.png放入项目结构中):
  4. self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]];

    渲染视图 - 它不起作用。没有自定义图像替换默认的“标题”文本。

    我不明白。为什么这不起作用?我需要做些什么来使它工作?是否有一些我需要做的根本不同的事情或我在这里没有完全掌握的概念?

    更新

    我已经发现上面的代码有效。您只需将视图嵌入导航控制器中即可。单击第一个选项卡式视图,然后执行Editor > Embed In > Navigation Controller。然后代码将起作用,您可以继续前进。只需使用上述方法将每个选项卡嵌入导航控制器中,您就可以开始使用了!

2 个答案:

答案 0 :(得分:1)

如果您的控制器嵌入在导航控制器中,您的代码将起作用,但如果您手动添加导航栏,则需要为其创建一个IBOutlet(在我的示例中为栏),并获取其导航项,< / p>

- (void)viewDidLoad {
    [super viewDidLoad];
    UINavigationItem *item = self.bar.items[0];
    item.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]];
}

答案 1 :(得分:0)

可能是您遇到的问题是因为没有设置框架。我有时会遇到类似的问题。试试这个:

UIImageView *customTitleView = [[UIImageView alloc]initWithFrame:CGRectMake((320-210)/2, 0, 210, 50)];
customTitleView.backgroundColor = [UIColor redColor];
self.navigationItem.titleView = customTitleView;

希望这会有所帮助。 :)