7

我有一个问题,我可以从我的根视图控制器成功推送一个新的视图控制器(使用基于导航的应用程序,使用核心数据模板),但是详细视图,它是根视图控制器的一个单独的 xib 文件,没有t 显示返回导航按钮。我确信我已经在 IB 中完成了所有正确的连接,并且其他一切都按预期工作。

RootViewController.h

@class ItemsViewController;

@interface RootViewController : UITableViewController <NSFetchedResultsControllerDelegate> {

IBOutlet ItemsViewController *itemsVC;

}

@property (nonatomic, retain) IBOutlet ItemsViewController *itemsVC;

@end

根视图控制器.m

#import "ItemsViewController.h"

@synthesize itemsVC;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
// Pushes to ItemsViewController

ItemsViewController *itemsViewController = [[ItemsViewController alloc] initWithNibName:@"ItemsViewController" bundle:[NSBundle mainBundle]];

[self.navigationController pushViewController:itemsViewController animated:YES];
[itemsViewController release];

}

ItemsViewController 是一个 UITableViewController 子类,有自己的 xib,也叫 ItemsViewController。同样,它是从 RootViewController 推送的,但后退按钮不会像这样显示。我的印象是它是使用导航控制器的“免费”功能。如您所料,这是一个非常令人沮丧的障碍,我将不胜感激。

4

5 回答 5

14

Does your ItemsViewController class set its title property in its viewDidLoad method?

You should call [tableView deselectRowAtIndexPath:indexPath animated:YES] as the last line of tableView:didSelectRowAtIndexPath: to conform to Apple's human interface guidelines.

于 2010-08-06T03:53:02.270 回答
10

是的,请确保您的 RootViewController 上有标题,如果没有,则不会出现任何按钮。以编程方式设置标题;

self.navigationItem.title = @"Hello Der";
于 2010-08-06T04:31:43.023 回答
1

给未来读者的一些额外信息:我在尝试在应用程序加载时重新填充导航层次结构时遇到了这个问题,所以我从应用程序委托的 application:didFinishLaunchingWithOptions: 方法调用 setViewControllers:。我遇到了同样的问题,后退按钮没有出现。

在我的情况下,在其 viewDidLoad 中设置根视图控制器的导航项标题不起作用,可能是因为其他视图首先加载并将根的标题视为空。相反,我在我的应用程序中设置了根视图控制器的导航项标题:didFinishLaunchingWithOptions: 在我调用 setViewControllers: 之前的方法,并且修复了它。

于 2010-10-25T14:51:45.333 回答
0

尝试以下代码段。它对我有用!

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"Image.png"] forBarMetrics:UIBarMetricsDefault];

[self.navigationController.navigationBar bringSubviewToFront:[self.navigationController.navigationItem backBarButtonItem]];
于 2013-02-28T12:33:32.173 回答
0

如果您是傻瓜并且错误地将视图初始化为模态而不是将视图推送到导航控制器,也会发生这种情况。

哎呀:[自我presentModalViewController:navController动画:是];意思是:[self.navigationController pushViewController:控制器动画:YES];

于 2013-03-22T00:09:11.093 回答