3

uiNavigationBarにいくつかのボタンを追加しようとしていますが、ナビゲーションコントローラーに接続されていないため、追加したくありません。

バーの左側に2つのボタンを追加しようとしていますが、これを可能にするコードの例は、行の使用のみです。

 self.navigationItem.leftBarButtonItems

明らかに、私のUINavigationBarはnavigatinItemではありません。

これが私のNavBarの作成方法です。

.h

@property (nonatomic, retain) UINavigationBar *navBar;

.m

_navBar = [[UINavigationBar alloc] init];
[_navBar setFrame:CGRectMake(0,0,self.view.bounds.size.width,52)];
[self.view addSubview:_navBar];

アイテムをナビゲーションバーにプッシュする2つの方法を見てきましたが、どちらも機能しません。

最初の存在..

    UIBarButtonItem *barButton = [[UIBarButtonItem alloc]
                                  initWithBarButtonSystemItem:UIBarButtonSystemItemAction
                                  target:self
                                  action:@selector(buttonSettingClicked)];

    [[self navigationItem] setLeftBarButtonItem:barButton]

     self.navigationItem.leftBarButtonItems = _ArrayOfBarButtons;

どちらも結果を生成しません...私のUINavigationBarは技術的には「ナビゲーションアイテム」ではないため、私は疑っています。

では、どうすればナビゲーションバーにアイテムを追加できますか?

4

2 に答える 2

5

最初にUINavigationItemを作成し、それにボタンを追加してから、ナビゲーションバーにnavigationItemを追加する必要があります。

[super viewDidLoad];
    _navBar = [[UINavigationBar alloc] init];
    [_navBar setFrame:CGRectMake(0,0,self.view.bounds.size.width,52)];
    [self.view addSubview:_navBar];
    UINavigationItem *navItem = [[UINavigationItem alloc]initWithTitle:@""];
    UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(buttonSettingClicked)];
    [navItem setLeftBarButtonItem:barButton];

    [_navBar setItems:@[navItem]];
于 2013-01-24T17:47:30.350 に答える
0
  m_navBar = [[UINavigationBar alloc] init];
  [m_navBar setFrame:CGRectMake(0,0,self.view.bounds.size.width,52)];
  [self.view addSubview:m_navBar];

  UIBarButtonItem *barButton = [[UIBarButtonItem alloc]
                                initWithBarButtonSystemItem:UIBarButtonSystemItemAction
                                target:self
                                action:@selector(buttonSettingClicked)];


  UINavigationItem* navItem = [[UINavigationItem alloc] initWithTitle:@"MyItem"];
  [m_navBar pushNavigationItem:navItem animated:NO];

  navItem.leftBarButtonItems = @[barButton, barButton];
于 2013-01-24T18:00:27.383 に答える