如何重新加载/重新分配导航栏项?我使用了一些改变导航栏的库,有时候我有一个包里面的所有导航项都会消失。我在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;
但它不起作用,有时我没有任何导航项目。
答案 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)
这是另一个很好的链接 AppCoda有很多很棒的教程,这个教程有你需要知道的关于Nav Bars的一切 http://www.appcoda.com/customize-navigation-status-bar-ios-7/
并且您还可以使用带有标识符方法的执行segue并将字符串或其他内容发送到新的视图控制器,然后当您看到该字符串等于您想要的内容时,在viewWillAppear方法中使用if语句。