重新加载导航栏

时间:2014-05-26 20:10:19

标签: ios navigation uinavigationbar uinavigationitem

如何重新加载/重新分配导航栏项?我使用了一些改变导航栏的库,有时候我有一个包里面的所有导航项都会消失。我在viewWillAppear中重新分配了正确的项目,如:

UIButton *actionButton = [UIButton buttonWithType:UIButtonTypeCustom];
actionButton.frame = CGRectMake(270, 0, 50, 50);
actionButton.adjustsImageWhenHighlighted = YES;
[actionButton setImage:[UIImage imageNamed:@"share.png"] forState:UIControlStateNormal];
[actionButton setImage:[UIImage imageNamed:@"share-active.png"] forState:UIControlStateHighlighted];
[actionButton addTarget:self action:@selector(presentActivity) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *actionBarButton = [[UIBarButtonItem alloc]initWithCustomView:actionButton];
actionBarButton.tintColor = [UIColor whiteColor];
self.navigationItem.rightBarButtonItem = actionBarButton;

但它不起作用,有时我没有任何导航项目。

2 个答案:

答案 0 :(得分:1)

UIBarButtonItem

不是UIButton的孩子。

这里不是像setImage:forState:等等的已知方法。

像这样创建和托管UITabBarButton

UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:self action:@selector(goBack)];
    newBackButton.image = [UIImage imageNamed:@"back"];
    self.navigationItem.leftBarButtonItem=newBackButton;

还验证在viewDidLoad

时是否会调用带有此代码的方法

答案 1 :(得分:0)

查看这个像https://developer.apple.com/library/ios/documentation/uikit/reference/uinavigationbar_class/Reference/UINavigationBar.html,苹果开发很棒。

这是另一个很好的链接 AppCoda有很多很棒的教程,这个教程有你需要知道的关于Nav Bars的一切 http://www.appcoda.com/customize-navigation-status-bar-ios-7/

并且您还可以使用带有标识符方法的执行segue并将字符串或其他内容发送到新的视图控制器,然后当您看到该字符串等于您想要的内容时,在viewWillAppear方法中使用if语句。