如何在iPhone的导航栏中添加右键控制按钮

Ran*_*ani 25 iphone objective-c navigationbar ios

我想在导航栏中添加一个右侧栏按钮项,以便在单击时执行某项功能.

我创建了以下代码来添加正确的条形按钮项,但完成后,条形按钮项不会显示在导航栏中:

-(void)viewDidload{
    self.navigationItem.rightBarButtonItem = 
    [[[UIBarButtonItem alloc] 
           initWithBarButtonSystemItem:UIBarButtonSystemItemAdd                                                                                                     
                                target:self
                                action:@selector(Add:)] autorelease];    
}

-(IBAction)Add:(id)sender
{
    TAddNewJourney *j=[[TAddNewJourney alloc]init];
    [app.navigationController pushViewController:j animated:YES];
    [j release];
}
Run Code Online (Sandbox Code Playgroud)

Ján*_*nos 39

假设您有一个UIViewController,如下所示:

UIViewController *vc = [UIViewController new];
Run Code Online (Sandbox Code Playgroud)

你把它添加到导航控制器:

UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:vc];
Run Code Online (Sandbox Code Playgroud)

这样就不会显示 rightBarButtonItem :

nc.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"xyz" style:UIBarButtonItemStyleDone target:self action:@selector(xyz)];
Run Code Online (Sandbox Code Playgroud)

但是这样会出现:

vc.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"xyz" style:UIBarButtonItemStyleDone target:self action:@selector(xyz)];
Run Code Online (Sandbox Code Playgroud)

使用您自己的viewcontroller而不是navigationcontroller来引用navigationItem.

  • 是的,这种变化正是我所需要的. (2认同)

vis*_*kh7 28

-(void)viewDidLoad
{ 
    [super viewDidLoad];
    app.navigationController.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(Add:)] autorelease];
}

-(IBAction)Add:(id)sender
{
    TAddNewJourney *j=[[TAddNewJourney alloc]init];
    [app.navigationController pushViewController:j animated:YES];
    [j release];
}
Run Code Online (Sandbox Code Playgroud)

尝试其他答案.我发布了这个答案,如果你的viewcontroller没有我认为是问题的导航控制器它会工作.


Ama*_*wal 7

在viewdidload中添加此代码

UIBarButtonItem *chkmanuaaly = [[UIBarButtonItem alloc]initWithTitle:@"Calculate" style:UIBarButtonItemStylePlain target:self action:@selector(nextview)];
self.navigationItem.rightBarButtonItem=chkmanuaaly;
[chkmanuaaly release];
Run Code Online (Sandbox Code Playgroud)