0

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

4 に答える 4

2

self.navigationItem は、navigationController ナビゲーション項目を参照しており、ナビゲーション コントローラーがなく、カスタム NavigationBar しかないため、機能していません。
この問題を解決するには、独自の UIButton を作成し、NavigationBar のサブビューに追加する必要があります。

于 2013-07-10T15:53:12.107 に答える
0

きれいなナビゲーション バーが必要な場合は、常に UIViewControllers を UINavigationController に配置します。害はなく、後でナビゲーション機能を追加できます. 次に、 self.navigationItem を使用して UIBarButtonItem を追加できます

于 2013-07-10T16:00:09.750 に答える
0

navigationItem は、ここで構築している navigationBar ではなく、親のナビゲーション バーのビュー コントローラーを表します。ボタンをナビゲーション バーに配置します。

于 2013-07-10T15:49:50.820 に答える
0

Sven が言ったように、self.navigationItem は、View Controller の親 UINavigationController に属する UINavigationBar の UINavigationItem を参照します。割り当てたばかりのナビゲーションバーにボタンを設定したい場合は、これを試してください:

UINavigationItem * navigationItem = [[UINavigationItem alloc] init];
navigationItem.leftBarButtonItem = self.editButtonItem;
[navigationBar setItems:@[navigationItem]];
于 2013-07-10T16:13:23.330 に答える