Ios4 UINavigationItem BackButtonItem未显示

Ios4 UINavigationItem BackButtonItem未显示,ios4,uibutton,uinavigationitem,Ios4,Uibutton,Uinavigationitem,使用下面的代码,我实现了自己的导航栏。由于某些原因,当我运行我的应用程序时,导航栏上的后退(左箭头)按钮没有显示任何内容。但是,如果我将代码更改为LeftBarButtonim,则会显示该按钮 // Draw Navigation Bar UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; [navigationBar setDelegate:sel

使用下面的代码,我实现了自己的导航栏。由于某些原因,当我运行我的应用程序时,导航栏上的后退(左箭头)按钮没有显示任何内容。但是,如果我将代码更改为LeftBarButtonim,则会显示该按钮

// Draw Navigation Bar
UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
[navigationBar setDelegate:self];

UINavigationItem *navigationItem = [[UINavigationItem alloc] init];

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
                                                                style:UIBarButtonItemStylePlain
                                                               target:nil 
                                                               action:nil];
navigationItem.backBarButtonItem = backButton;
[navigationBar pushNavigationItem:navigationItem animated:NO];
[self.view addSubview:navigationBar];
[navigationBar release];
[backButton release];

backBarButtonItem
由父视图控制器设置。 换句话说,它不是由您看到它的
ViewController
设置的,而是由它所指向的
ViewController
设置的。因此,如果您的
ViewController
是第一行,它就不会有后退按钮

此外,您正在自己创建导航栏。这通常不是办法,一个
UINavigationBar
不像按钮或标签那样是一个UI元素。您应该使用
UINavigationController
来处理
ViewControllers

的所有推送和弹出操作

// Draw Navigation Bar
UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
[navigationBar setDelegate:self];

UINavigationItem *navigationItem = [[UINavigationItem alloc] init];

UIButton *button = [UIButton buttonWithType:101];
// add selector
[button setTitle:@"Back" forState:UIControlStateNormal];

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:button];

navigationItem.leftBarButtonItem = backButton;
[navigationBar pushNavigationItem:navigationItem animated:NO];
[self.view addSubview:navigationBar];
[navigationBar release];
[backButton release];

我理解这一点,通常我会像你说的那样实现导航栏。但是,在本例中,我以编程方式创建了一个SplitView,这意味着我的SplitViewController是UINavigationController。我要做的是隐藏SplitView的导航栏,并为我的左视图控制器和右视图控制器构建唯一的导航栏