按钮不显示在导航栏项

问题描述:

我已经创建了一个基于导航的应用程序模板的项目,并做了一些工作,并运行它。按钮不显示在导航栏项

我想如果我触摸一个单元格,新的视图会显示出来,并且新的图标(它将返回按钮)也会显示在导航栏项目上。

但由于某种原因,“后退按钮”不会自动添加。有什么问题?

以下是我的代码。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    // Navigation logic may go here -- for example, create and push another view controller. 
    MessageView *detailViewController = [[MessageView alloc] initWithNibName:@"MessageView" bundle:nil]; 

    NSDictionary* aMessage = [m_tableData objectAtIndex:indexPath.row]; 
    detailViewController.m_message = [[NSDictionary alloc] initWithDictionary:aMessage]; 

    // Pass the selected object to the new view controller. 
    [self.navigationController pushViewController:detailViewController animated:YES]; 
    [detailViewController release]; 
} 
+0

它是您推入导航控制器的视图(MessageView)吗?你只能推UIViewController而不推UIView – Nevin 2011-02-23 01:56:03

你可能没有给你父控制器(在viewDidLoad中或viewWillAppear中只是self.title = @“我的名字”)的目标。这就是后退按钮默认填入的内容,所以如果你没有给它起个名字,你就不会得到后退按钮。

+0

谢谢。它现在有效。 – SeniorLee 2011-02-23 14:20:04

+0

伟大的提示!你说它被“默认”填充。只是好奇是否意味着你可以给“后退按钮”一个与控制器本身不同的标题?谢谢!!! – jpswain 2011-07-18 19:23:39

+1

是的,你可以制作你自己的按钮(至少在父母),一旦被称为后退按钮显然是固定的。例如,self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@“Back” style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease]; – mackworth 2011-07-19 01:54:05

您在说MessageView是从UIView继承而来的。但我认为如果没有问题推入导航控制器,那么它将是UIViewController的子类。

有一些原因,不显示后退按钮: -

1)由于麦克沃思告诉你没有给您从中浏览任何所有权。

2.)您的导航栏的后退按钮属性设置为隐藏。

否则返回按钮应该出现在导航栏上。

+0

感谢您的回答。但我不能接受多于一个的答案;(刚刚给了它第一个答案对不起, – SeniorLee 2011-02-23 14:20:58

看来你没有设置你的导航栏标题的视图从正在导航...

一旦你默认设置导航栏的标题,它会显示你的后退按钮

在ViewDidLoad或ViewWillAppear中使用它。

self.navigationItem.title = @“在此设置您的标题”;

+0

谢谢你的答案,但我不能接受多于一个答案;(刚刚给了它首先回答对不起。 – SeniorLee 2011-02-23 14:22:04