Rog*_*ger 16 uinavigationcontroller ipad uipopovercontroller ios
我很难过: -
我在商店里有一个遗留应用程序,我正在为iOS 8/9刷新.它是几年前写的(前ARC),是iPhone和iPad的通用应用程序.现在一切都在这个......
在iPad上,屏幕顶部有一个工具栏,我提供了一个UIPopoverControllers,其中包含一个UINavigationController,其中包含一些您可以深入查看的标准UITableViewController类型屏幕.
在Portrait(和Portrait Upside Down)中,一切都按预期工作.
然而,在风景中,按下"返回"(标准背面而不是自定义背景)会导致奇怪的动画 - 输出控制器跳出弹出窗口并快速滑出屏幕(方向受设备所在的方向控制),而输入控制器只是一旦外出控制器跳出弹出窗口,就会立即出现.我不得不使用慢动画来确定这是全速,它看起来像一个巨大的故障.
有一个短短20秒的电影显示这里的缺陷 ; 请注意在14秒内点击"位置"时会发生什么.
如果我将VC堆栈作为表单而不是UIPopover,那么无论方向如何,一切都按预期工作.我也尝试过更新的UIPopoverPresentationController并遇到了同样的问题,这让我感到很惊讶.
这种情况发生在我正在呈现的两个弹出框中(一个来自工具栏左侧,一个来自工具栏右侧),它们都有非常不同的内部结构.唯一的共同因素是它们在UIPopover中有一个UINavigationController.
我已经使用视图调试器来检查视图层次结构,但似乎没有什么不寻常的,我无法在故障期间捕获视图,无论我运行模拟器有多慢,所以我怀疑我看到了内部问题弹出窗口或导航控制器.
有没有人见过类似的东西?我在设备上(iOS 8.4)和iOS 8和9的模拟器中都看到了这一点.
对于上下文,这个项目没有故事板,很少使用xib并且通常在loadView中的代码中构建UI - 它实际上是一个旧的应用程序...
谢谢你的任何指示.不确定任何代码在这里会有多大帮助,但这里有关于popover的介绍;
LocationsViewController* locationsvc = [[LocationsViewController alloc] init];
UINavigationController *localNavigationController = [[UINavigationController alloc] initWithRootViewController:locationsvc];
localNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
[locationsvc release];
UIPopoverController* aPopover = [[UIPopoverController alloc] initWithContentViewController:localNavigationController];
aPopover.delegate = self;
aPopover.backgroundColor = [UIColor colorWithWhite:0 alpha:0.9];
self.locationPopoverController = aPopover;
[aPopover release];
[localNavigationController release];
[locationPopoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
Run Code Online (Sandbox Code Playgroud)
我用下面的新口味代码得到同样的缺陷;
UINavigationController *destNav = [[UINavigationController alloc] initWithRootViewController:locationsvc];
locationsvc.preferredContentSize = CGSizeMake(320,280);
UIPopoverPresentationController *newPresentationController;
destNav.modalPresentationStyle = UIModalPresentationPopover;
newPresentationController = destNav.popoverPresentationController;
newPresentationController.barButtonItem = sender;
destNav.navigationBarHidden = NO;
[self presentViewController:destNav animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
当我使用UIModalPresentationPageSheet但是当我使用UIModalPresentationFormSheet时,不会出现同样的问题.
小智 1
我遇到过同样的问题。在我添加了对横向方向的支持以在导航控制器内查看控制器后,该问题得到了解决。
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
452 次 |
| 最近记录: |