在没有导航控制器的情况下将barButtonItems添加到UINavigationBar

JMD*_*JMD 3 iphone xcode objective-c ipad ios

我正在尝试向uiNavigationBar添加一些按钮,但它没有附加到导航控制器,我不希望它.

我试图在栏的左侧添加两个按钮,但我发现的唯一代码示例允许这涉及使用该行

 self.navigationItem.leftBarButtonItems
Run Code Online (Sandbox Code Playgroud)

显然,我的UINavigationBar不是navigatinItem.

以下是我创建NavBar的方法..

.H

@property (nonatomic, retain) UINavigationBar *navBar;
Run Code Online (Sandbox Code Playgroud)

.M

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

我已经看到了将项目推送到导航栏的两种方法,但都没有工作.

首先......

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

    [[self navigationItem] setLeftBarButtonItem:barButton]
Run Code Online (Sandbox Code Playgroud)

     self.navigationItem.leftBarButtonItems = _ArrayOfBarButtons;
Run Code Online (Sandbox Code Playgroud)

没有人产生任何结果...我怀疑因为我的UINavigationBar在技术上不是一个"导航项目".

那么如何将项目添加到我的NavigationBar?

rde*_*mar 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]];
Run Code Online (Sandbox Code Playgroud)