gpt4 book ai didi

objective-c - segue加载viewcontroller但不显示它

转载 作者:行者123 更新时间:2023-11-30 11:10:35 25 4
gpt4 key购买 nike

从iPad应用程序中的代码调用segue时,显示View Controller时出现问题。

我通过Ctrl从一个视图控制器拖到另一个视图控制器中,在IB中进行了segue设置,

标识符:viewDocumentSegue,样式:模态,演示:默认,过渡:默认

然后我使用第一个视图控制器调用segue

[self performSegueWithIdentifier:@"viewDocumentSegue" sender:nil];


并将变量传递给第二个视图控制器

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
UIViewController *destination = segue.destinationViewController;

if ([destination respondsToSelector:@selector(setFileURL:)]) {
[destination setValue:fileName forKey:@"fileURL"];
}
}


确实加载了第二个视图控制器,正如我在viewDidLoad viewWillAppear和viewDidAppear中显示的NSLog在控制台中显示的一样,但未显示任何内容。

我在想第二个视图控制器的视图位于视图层次结构中的某个位置。但是,我如何将其推到顶峰呢?

编辑

这是界面的屏幕截图(某些东西需要涂黑)。我添加了一些注释来解释结构。希望它会有所帮助。

(我尚无法上传图片,因此这是一个链接)
http://www.linfoots.com/Screenshot.jpg

有什么建议么?

谢谢,

理查德

最佳答案

您没有提供我所要求的其他信息,因此无法详细回答您的问题。我建议您做的是使用两个视图控制器创建一个全新的项目。以同样的方式将它们连接到情节提要中。您会看到,您实际上想做的事情应该很好。一旦确信了这一点,就可以返回并查看遇到问题的项目的不同之处。

编辑:

好的,谢谢您的截屏。就像您在第二条评论中所猜到的那样,您似乎正在尝试将故事板与父视图控制器结合使用。这不是一件容易的事,因为情节提要对父视图控制器的孩子一无所知。使用多个情节提要,或者根本不使用情节提要,您会更加快乐。

现在我们来谈谈使用父视图控制器的问题。您没有问这个问题,但这可能是您问题的核心。正确管理子视图控制器至关重要。请参阅我的书中的讨论:

http://www.apeth.com/iOSBook/ch19.html#_container_view_controllers

您每次都必须进行这种精心制作的舞蹈,否则事情将无法正常进行:

当某个视图控制器要成为您的父级视图控制器的孩子时:


您在父视图控制器上调用addChildViewController:。子级会自动添加到父级的childViewControllers数组中,并保留该数组。
如果这是添加子视图控制器的意思,则可以将子视图控制器的视图带入界面。
您将didMoveToParentViewController:发送给具有父视图控制器作为其参数的孩子。


当视图控制器不再是您的父视图控制器的孩子时:


您将使用nil参数将willMoveToParentViewController:发送给孩子。
如果这是删除子视图控制器的意思,则可以从界面中删除子视图控制器的视图。
您将removeFromParentViewController发送给子级。子级会自动从父级的childViewControllers数组中删除,然后将其释放。


最后,当您进行模态转换时,父链中的definesPresentationContext变得至关重要,因此模态视图知道在界面中要替换的视图。我的书中的这个可下载示例演示了必要的区别:

https://github.com/mattneub/Programming-iOS-4-Book-Examples/tree/master/convertedToIOS5/p476containerController2

关于objective-c - segue加载viewcontroller但不显示它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52214435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com