【发布时间】:2014-05-16 06:54:00
【问题描述】:
那里有很多代码,而且种类繁多。有时 segue 控制器是 :init 的,有时它按原样使用。它显然在 I :init 之前设置为一个对象,但在某些情况下,控制器无法按预期工作。 prepareForSegue 上似乎没有任何文档可以解决这个问题。
另外我可能会补充一点,一些开发人员甚至使用第三种选项并简单地重新定义他们呈现的 segue。
我错过了什么?
示例 iPad 的 UIImagePickerController 需要 :init(没有照片加载到选择器中),在 iPhone 上它可以按预期工作。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// This line is required for iPad functionality.
// UIImagePickerController *segueController = [((UIImagePickerController*)(segue.destinationViewController)) init];
// This line is all that is required on iPhone/iPod
UIImagePickerController *segueController = (UIImagePickerController*)segue.destinationViewController;
segueController.delegate = self;
segueController.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
}
另一个 SO 帖子:iOS7 Storyboard image picker not working :(
编辑
似乎 UIImagePickerController:initWithCoder 可能存在问题,但我不知道如何验证。
【问题讨论】:
-
您永远不应该为 segue 初始化控制器(即目标视图控制器)。 segue 为您实例化控制器。如果您有一些特定的代码 sn-ps 有疑问,您应该发布它们。很难回答这样一个不具体的问题。
-
之所以发布它是因为互联网上散布着矛盾。这就是没有“特定”代码的原因。我可以举一个我知道的例子——我会修改。
-
您的编辑太含糊而无用。每个对象都需要实例化才能使用它。有时这是在代码中完成的,有时是由故事板或 xib 为您完成的。如果你认为你有一段实际的代码显示了一个没有被实例化的对象的使用,然后发布它。我还建议您少花点时间在网上,多花点时间阅读 Apple 的文档——它更可靠。
-
你绝对是我听说的第一个赞美 Apple 文档的人。 :D 我将尝试挖掘本周我为您仔细阅读过的示例(在 Apple)。
-
我不知道你会如何立即转向光顾。我什至包含了您非常喜欢的相关 Apple 文档的链接。我什至不确定年龄在这方面起什么作用。据你所知,我已经 63 岁了。这会让我变得更好吗?
标签: ios objective-c