我什么时候启动segue控制器UIViewController:prepareForSegue:?

时间:2014-04-04 05:56:51

标签: ios objective-c

那里有很多代码,它真的很多样。有时segue控制器是:init,有时它按原样使用。它显然在我之前设置为一个对象:init它,但在某些情况下控制器不能按预期工作。似乎没有任何关于prepareForSegue的文件可以解决这个问题。

此外,我可能会补充一些开发人员甚至使用第三种选择,只需重新定义他们所呈现的信息。

我错过了什么?

实施例 用于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,但我不知道如何验证。

1 个答案:

答案 0 :(得分:0)

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

    destinationController.delegate = self;
    destinationController.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
}

您没有[ alloc] init] UIViewController