【发布时间】:2016-07-25 17:44:39
【问题描述】:
真的希望有人可以提供帮助,因为我觉得我已经尝试了在 SC 上可以找到的所有选项。首先很抱歉,如果代码混乱或者这是一个愚蠢的问题,开发不是我的强项:/
基本上,我在情节提要中创建了一个特定于 iPad 的应用程序,我有许多视图控制器和场景,并嵌入了一个导航控制器。该应用程序非常线性,它只是按顺序在每个屏幕中移动(您根本不能在应用程序内跳来跳去)。
在第一个屏幕上,用户可以通过 2 个按钮进行 2 个选择,每个按钮显示一个图像,并且他们选择的任何图像也需要显示在接下来的每个屏幕上。
当我没有嵌入导航控制器时,调用以下命令就可以正常工作:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"passSegue"] && (parentImage.hidden == NO) && (parentImage2.hidden == NO)) {
ViewControllerGirl2 * vc = [segue destinationViewController];
UIImage *imageView = [UIImage imageWithContentsOfFile:[[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/1.png"]];
UIImage *imageView2 = [UIImage imageWithContentsOfFile:[[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/2.png"]];
vc.parentImage = imageView;
vc.parentImage2 = imageView2;
}
但是现在我已经嵌入了 UINavigationController 我的图像不再出现在下一个屏幕上。我已经尝试了以下建议的方法:
UINavigationController *navController = [segue destinationViewController];
ViewControllerGirl2 *vc = (ViewControllerGirl2 *)navController.topViewController;
但我尝试实施这些建议的每一种方式都崩溃了。
任何帮助将不胜感激,因为我已经坚持了 2 天。
【问题讨论】:
-
当它崩溃时它会说什么?我的意思是调试输出(如果有的话)?
-
嗨@EugeneZhenyaGordin 它说:由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[ViewControllerGirl2 topViewController]:无法识别的选择器发送到实例0x7c9c13b0'
-
destinationViewController 是 UINavigationController 还是 ViewControllerGirl2 吗?通过断点查看调试,因为我认为您在那里进行了错误的转换....错误告诉您 ViewControllerGirl2 没有方法 topViewController,所以我假设 destinationViewController 已经是 ViewControllerGirl2
-
@EugeneZhenyaGordin 这是 ViewControllerGirl2。感谢您的反馈,非常感谢。我在导航控制器中添加的唯一原因是由于每个 VC 的模态表示上的内存分配过多,我需要一种从堆栈中删除视图控制器以释放内存的方法:/ 我确定我所做的有点傻!
-
那么您的问题解决了吗?当您只使用没有导航控制器参考的destinationViewController 时?
标签: ios objective-c uiviewcontroller uinavigationcontroller segue