我应该在 -initWithNibName:bundle: 与 -viewDidLoad 中设置哪些 UIViewController 属性?
我知道我应该 设置 -initWithNibName:bundle:
中的 >self.title。
-
self.navigationItem.titleView
怎么样?由于
self.navigationItem.titleView
似乎仅在加载self.view
时使用,我想我应该为了节省内存,设置self.navigationItem.titleView
在-viewDidLoad
中,并在-viewDidUnload
中将其置零,例如:- (void)viewDidLoad { [超级viewDidLoad]; self.navigationItem.titleView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"logo.png"]]; } - (void)viewDidUnload { self.navigationItem.titleView = nil; [超级viewDidUnload]; }
-
怎么样
self.navigationItem.backBarButtonItem
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在
-viewDidLoad
中设置self.navigationItem.titleView
并在-viewDidUnload
中将其置零似乎可以正常工作。您应该在
-initWithNibName:bundle
中设置self.navigationItem.backBarButtonItem
,因为如果您在没有动画的情况下推送两个视图控制器-viewDidLoad
将不会被推送的第一个视图控制器调用。因此,如果该视图控制器在-viewDidLoad
中设置了self.navigationItem.backBarButtonItem
,它实际上不会被设置,并且第二个视图控制器上的后退按钮将默认为像往常一样第一个视图控制器的标题。It seems to work OK to set
self.navigationItem.titleView
in-viewDidLoad
and nil it in-viewDidUnload
.You should set
self.navigationItem.backBarButtonItem
in-initWithNibName:bundle
because if you push two view controllers without animation-viewDidLoad
will not get called for the first view controller that's pushed. So, if that view controller setsself.navigationItem.backBarButtonItem
in-viewDidLoad
, it will actually not get set, and the back button on the second view controller will just default to the title of the first view controller as usual.