所以我在导航中显示uibarbuttonitem时遇到了问题。 我正在使用代码:
UIBarButtonItem *confirmButton = [[UIBarButtonItem alloc]init];
confirmButton.title = [@"SETTING_INTRO_CONFIRM" translate];
confirmButton.style = UIBarButtonItemStylePlain;
confirmButton.target = self;
confirmButton.action = @selector(confirmSettingsBtnClick:);
self.navigationItem.rightBarButtonItem = confirmButton;
将按钮添加到空导航以符合我选择的内容。 在iOS 9.3上它工作正常但在iOS 11上按钮没有显示。
视图显示如下:
FirstRunViewController *firstRunViewController = [self getFirstRunViewControllerForActivationContentType:ActivationContentTypeForgottenPasscode];
UINavigationController *firstRunViewControllerWithNavigation = [[UINavigationController alloc]initWithRootViewController:firstRunViewController];
dispatch_async(dispatch_get_main_queue(), ^{
[viewController.navigationController presentViewController:firstRunViewControllerWithNavigation animated:YES completion:nil];
});
如果有人有任何想法,我会非常高兴。
编辑1: 添加按钮代码在firstRunViewController的ViewDidLoad中调用。我甚至试图把它放在viewWill和didAppear中,但没有任何效果。
编辑2: 因此,对于测试,我试图检查按钮是否存在代码
NSArray *test = self.navigationItem.rightBarButtonItems;
我在viewWillAppear中调用它并且按钮存在,它只是没有显示。
编辑3: 所以解决方案是改变
[viewController.navigationController presentViewController:firstRunViewControllerWithNavigation animated:YES completion:nil];
为:
[self.appDelegate.window setRootViewController:firstRunViewControllerWithNavigation];