UINavigationController 在 UIPopOverController 中不起作用
Posted
技术标签:
【中文标题】UINavigationController 在 UIPopOverController 中不起作用【英文标题】:UINavigationController not working in UIPopOverController 【发布时间】:2013-03-29 06:32:06 【问题描述】:在我的 Ipad 应用程序 (ios6) 中,我正在处理 UIPopOverController
。在UIPopOverController
我正在展示相机。我的要求是当我按下相机捕捉按钮时,它会推送到另一个视图控制器。在那个视图控制器中,我想显示从相机拍摄的图像。
我正在使用此代码:
ImageCropViewController *cropViewController = [[ImageCropViewController alloc]initWithNibName:@"ImageCropViewController" bundle:nil];
cropViewController.sourceImage = image;
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:cropViewController];
[self.navigationController presentViewController:navController animated:YES completion:nil];
我已经尝试了很多并用谷歌搜索,但我没有找到任何解决方案。它正在消磨我的时间,所以如果有人对此进行了研究,请指导我并发布示例代码。
【问题讨论】:
您要推送还是展示?另外你在哪里使用 UIPopoverController ? 我要推。@Flappy 【参考方案1】:终于找到了解决办法:
ImageCropViewController *cropViewController = [[ImageCropViewController alloc]initWithNibName:@"ImageCropViewController" bundle:nil];
cropViewController.sourceImage = image;
[self.navigationController pushViewController:cropViewController animated:YES];
我在ImageCropViewController
的ViewWillAppear
写了下面的代码
self.contentSizeForViewInPopover = CGSizeMake(450, 350);
【讨论】:
【参考方案2】:我认为您的self.navigationController
是nil
。您创建导航控制器,但将其用作裁剪器控制器的包装器。例如:
//in AppDelegate
SomeController *controller = [SomeController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller];
self.window.rootViewController = controller;
[self.window makeKeyAndVisible];
// later
// asume that self is SomeController
ImageCropViewController *cropViewController = [[ImageCropViewController alloc]initWithNibName:@"ImageCropViewController" bundle:nil];
cropViewController.sourceImage = image;
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:cropViewController];
[self.navigationController presentViewController:navController animated:YES completion:nil]; // now it will be work
UPD:我第一次没有看到你使用UIPopOverController
,所以它可能不起作用。但是UIPopOverController
没有 navigationController 属性。
【讨论】:
以上是关于UINavigationController 在 UIPopOverController 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在 UINavigationController 内的 UITabBarcontroller 中添加 UINavigationController?
从嵌入在 UINavigationController 中的一个视图控制器到另一个 UINavigationController
(Swift) 在嵌套在 Main UINavigationController 中的 UINavigationController 和 UITabController 之间切换
关闭 UINavigationController 并呈现另一个 UINavigationController
带有主 UINavigationController 和详细 UINavigationController 的 UISplitViewcontroller