UIBarButtonItem未显示在子视图中

时间:2013-07-10 15:47:10

标签: iphone ios objective-c

我想用NavigationBar和TableView创建子视图。在导航栏中应该是一个可以编辑tableView的按钮。 navigationBar和TableView显示在子视图中,但barButtonItem没有显示。我的代码中是否有错误,或者是否存在问题,因为它是子视图?

UIView *tagView = [[UIView alloc] initWithFrame:CGRectMake(0, 325, screenSize.size.width, 200)];


                         tableView = [[UITableView alloc] initWithFrame:CGRectMake(-10, 40, screenSize.size.width, 150) style:UITableViewStylePlain];
                         tableView.delegate = self;
                         tableView.dataSource = self;
                         [tagView addSubview:tableView];

                         UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, tagView.frame.size.width, 45)];
                         self.navigationItem.leftBarButtonItem = self.editButtonItem;
                         [tagView addSubview:navigationBar];

                         [self.view addSubview:tagInstruction];
                         [self.view addSubview:tagView];

4 个答案:

答案 0 :(得分:1)

self.navigationItem是指navigationController导航项,你没有任何导航控制器,你只有自定义NavigationBar,因此无法正常工作。
要解决此问题,您必须创建自己的UIButton并添加到NavigationBar的子视图中。

答案 1 :(得分:0)

navigationItem表示父级导航栏中的视图控制器,而不是您在此处构建的navigationBar。将Button放入导航栏。

答案 2 :(得分:0)

如果我需要一个干净的navigationBar,我总是把我的UIViewControllers放在UINavigationController中。它不会受到伤害,您可以稍后添加导航功能。然后,您可以使用self.navigationItem添加UIBarButtonItem

答案 3 :(得分:0)

像Sven所说,self.navigationItem引用UINavigationBar的UINavigationItem,它属于视图控制器的父UINavigationController。如果你想在你刚刚分配的导航栏中设置你的按钮,试试这个:

UINavigationItem * navigationItem = [[UINavigationItem alloc] init];
navigationItem.leftBarButtonItem = self.editButtonItem;
[navigationBar setItems:@[navigationItem]];