当UINavigationController以模态方式呈现时,UIBarButtonItems移位

blo*_*ork 13 uinavigationbar uikit uinavigationcontroller ios8 ios-app-extension

UINavigationController在iOS应用扩展程序中呈现模态:

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];       
nav.modalPresentationStyle = UIModalPresentationFormSheet;
nav.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:nav animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

当导航控制器出现时,其根视图控制器的UIBarButtonItems跳转位置:

跳跃的按钮

我正在创建和添加按钮viewDidLoad.它们只是标准的条形按钮项:

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)];
Run Code Online (Sandbox Code Playgroud)

我没有压倒viewDidAppear(这似乎是按钮跳跃的点).

从我的应用程序中呈现相同的导航控制器/根视图控制器,而不是应用程序扩展,不会给我同样的问题.有任何想法吗?

gil*_*tty 2

正如 @Stonz2 提到的,这似乎是从分离的视图控制器呈现模式的一个特征。我遇到了同样的问题,并通过重新组织我的应用程序来解决它,以便它不会从独立的控制器中呈现。

如果收到以下错误消息,您就会知道您是否是从独立的控制器进行演示:

不鼓励在分离的视图控制器上呈现视图控制器