无法以编程方式设置 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 标题的主要内容,如果未能解决你的问题,请参考以下文章

无法以编程方式设置 EditText ID

我无法以编程方式为标签栏控制器设置标题

无法以编程方式为 DataTable 设置初始排序顺序

无法以编程方式设置 UINavigationItem 标题

无法在 UITableViewCell 中以编程方式创建的 UIButton 上设置图像

无法使用 Android Studio 以编程方式为视图设置 ID