我正在尝试将leftBarButtonItem添加到我的iPhone应用中。我有导航控制器,里面有TableViewController。 我在AppDelegate.m文件中编写以下行。
self.viewCon = [[UITableViewController alloc]init];
self.navCon = [[UINavigationController alloc]initWithRootViewController:self.viewCon];
self.viewCon.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc]
initWithTitle:@"Second View" style:UIBarButtonItemStyleBordered target:self action:@selector(push)]autorelease];
导航项目未出现在屏幕上。桌子已开启。可能是什么问题? 顺便说一句,没有ARC或故事板。
答案 0 :(得分:3)
我假设你想要一个带有NavigationController的TableView,在这种情况下你的根视图控制器将是你的导航控制器,而不是你的tableview。如果你在IB中正确构建应用程序(因为我看不到你做了什么而在黑暗中刺伤),那么你不应该初始化你的导航控制器。如果是这种情况,那么它应该像
一样简单self.viewCon.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Second View" style:UIBarButtonItemStyleBordered target:self action:@selector(push)]autorelease];
我认为您正在使用程序化初始化覆盖当前设置的NavController,这会导致所有内容消失。
如果出现这种情况并且您可能已经尝试过此操作,请回复错误以及IB设置的屏幕截图。
答案 1 :(得分:0)
请改为尝试:
UIBarButtonItem *bbi = [[[UIBarButtonItem alloc] initWithTitle:@"Second View" style:UIBarButtonItemStyleBordered target:self action:@selector(push)]autorelease];
[self.navigationItem setLeftBarButtonItem:bbi];
答案 2 :(得分:-1)
[self.navigationController setNavigationBarHidden:NO];
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[backButton setFrame:CGRectMake(0, 0, 49,32)];
[ backButton setBackgroundImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *back = [[UIBarButtonItem alloc]initWithCustomView:backButton];
self.navigationItem.leftBarButtonItem = back;
[back release];