导航项目未显示

时间:2017-11-29 15:02:22

标签: ios objective-c uiviewcontroller uinavigationitem

所以我在导航中显示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];

0 个答案:

没有答案