正在尝试修改UINavigationItem中的标题
// this modify the title
self.navigationItem.title = @"Any title";
// this does not
navigationItem.title = @"Any title";为什么?
发布于 2013-01-17 03:39:52
navigationItem不是它正在使用的对象。self.navigationItem是在将UIViewController与UINavigationController一起使用时按需创建的只读属性。您当然可以创建自定义UINavigationItem,但这在标准的UINavigationController设置中通常是不受欢迎的,而且您也不需要这样做。
至于self.title,它只是self.navigationItem.title的一个捷径。使用快捷方式的原因是,如果需要,它可以在其他容器类型中使用,包括您自己的自定义容器。
如果你解构正在发生的事情。这很可能正在发生,如果你访问一个navigationItem,加载你的书目,一个基本的UINavigationController会:
- (UINavigationItem)navigationItem
{
if (!_navigationItem) {
_navigationItem = [[UINavigationItem alloc] initWithTitle:self.title];
}
return _navigationItem;
}你可以在这里阅读更多关于苹果的评论:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instp/UIViewController/navigationItem
https://stackoverflow.com/questions/14366320
复制相似问题