无法以编程方式设置 UINavigationItem 标题
Posted
技术标签:
【中文标题】无法以编程方式设置 UINavigationItem 标题【英文标题】:Can't set UINavigationItem title programmatically 【发布时间】:2012-05-30 18:18:17 【问题描述】:我使用情节提要设置我的应用程序,并将我的主视图控制器嵌入到 UINavigationControler
中。要更改出现在导航栏中的标题,在我的主视图控制器的 viewDidLoad
方法中,我有 self.navigationItem.title = @"My Title";
但标题永远不会设置。
我的猜测是我需要在我的故事板中设置一个参考插座,但我不确定什么需要连接到什么。有什么想法吗?
【问题讨论】:
【参考方案1】:在故事板中,它不会自动连接,请使用 .h 文件中的以下代码制作 UINavigationItem
@property(weak, nonatomic) IBOutlet UINavigationItem *navBar;
在.m文件中合成属性并这样设置标题
@synthesize navBar;
-(void)viewWillAppear:(BOOL)animated
[self.navBar setTitle:@"Sign In"];
[self.navigationController setNavigationBarHidden:NO animated:animated];
另外,不要忘记将storyBoard中的UINavigationItem“navBar”与你的类连接起来,这样storyboard就知道要改变谁的标题了。如果您的情节提要中没有 UINavigationItem,请将其添加到 UIView 之外,然后正确连接
【讨论】:
【参考方案2】:只需设置您所在的视图控制器的标题属性就可以了。
[self setTitle:@"Best Page Ever"];
【讨论】:
嗯,你有没有试过在推控制器之前设置标题?【参考方案3】:在你分配了你的 rootview 之后..use:-
YourRootView *rootView=[YourRootView alloc]init];
rootView.title=@"yourTitle";
然后在 uinavigationcontroller 中对其进行初始化。(我不知道您是否在 storyboard 上有视图,然后在分配后设置其标题,然后将其作为参数传递给 navigationcontroller)。
【讨论】:
以上是关于无法以编程方式设置 UINavigationItem 标题的主要内容,如果未能解决你的问题,请参考以下文章