2 chengzi 963 Chengzi_963 于 2012.09.07 14:37 提问

如何在UINavigationController中添加向右按钮?
ios

想要在navigation controller 的顶端条添加一个刷新键。不知道为什么不执行。
hearder代码:

@interface PropertyViewController : UINavigationController {}

添加button代码:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
        UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain
                target:self action:@selector(refreshPropertyList:)];        
        self.navigationItem.rightBarButtonItem = anotherButton;
    }
    return self;
}

不知道错误在哪儿,多谢指教

8个回答

loFataMer
loFataMer   2012.09.07 15:04
已采纳

试试在viewDidLoad中实现。一般来说,代码都应该写在这个函数里面,因为一个UIViewController在初始化了之后并不一定会显示出来,在这种情况下viewDidLoad是不会被调用的

- (void)viewDidLoad {
  [super viewDidLoad];

  UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain target:self action:@selector(refreshPropertyList:)];          
  self.navigationItem.rightBarButtonItem = anotherButton;
  [anotherButton release];
}

 self.navigationItem.rightBarButtonItem= anotherButton; [anotherButton release];}
Chengzi_963
Chengzi_963 试了,可以了~
5 年多之前 回复
Chengzi_963
Chengzi_963 谢谢:)
5 年多之前 回复
Mr_me
Mr_me   2012.09.07 14:47

添加一个buttonview controller中的navigationItem 。并定义在你创建的PropertyViewController类中。

MainViewController *vc=[[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(showInfo) forControlEvents:UIControlEventTouchUpInside];
vc.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:infoButton] autorelease];

PropertyViewController *navController = [[PropertyViewController alloc] initWithRootViewController:vc];

这样创建的infoButton 出现在导航bar里。导航控制器会通过UIViewController 选择显示的信息(题目,button),实际上没有创建buttons,直接显示UINavigationController 。

qazwsx132656526
qazwsx132656526   2015.08.31 20:00

添加一个button到view controller中的navigationItem 。并定义在你创建的PropertyViewController类中。

linyang24
linyang24   2015.07.22 13:49

获取到导航控制栏之后 直接添加rightbuttonitem

zj382561388
zj382561388   2015.08.28 10:21

1楼的回答 很受用 也解决了我的问题

qq_35399513
qq_35399513   2016.06.23 10:43

添加一个button到view controller中的navigationItem 。并定义在你创建的PropertyViewController类中。
MainViewController *vc=[[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(showInfo) forControlEvents:UIControlEventTouchUpInside];
vc.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:infoButton] autorelease];

PropertyViewController *navController = [[PropertyViewController alloc] initWithRootViewController:vc];

这样创建的infoButton 出现在导航bar里。导航控制器会通过UIViewController 选择显示的信息(题目,button),实际上没有创建buttons,直接显示UINavigationController 。

qq_40317143
qq_40317143   2017.10.02 15:14

试试在viewDidLoad中实现。一般来说,代码都应该写在这个函数里面,因为一个UIViewController在初始化了之后并不一定会显示出来,在这种情况下viewDidLoad是不会被调用的

  • (void)viewDidLoad {
Q626942929
Q626942929   2017.11.11 06:08

试试在viewDidLoad中实现。一般来说,代码都应该写在这个函数里面,因为一个UIViewController在初始化了之后并不一定会显示出来,在这种情况下viewDidLoad是不会被调用的

  • (void)viewDidLoad {
    [super viewDidLoad];

    UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain target:self action:@selector(refreshPropertyList:)];

    self.navigationItem.rightBarButtonItem = anotherButton;
    [anotherButton release];
    }

    self.navigationItem.rightBarButtonItem= anotherButton; [anotherButton release];}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!