繁体   English   中英

什么时候初始化segue控制器UIViewController:prepareForSegue :?

[英]When do I init the segue controller UIViewController:prepareForSegue:?

那里有很多代码,而且真的很多种。 有时segue控制器是:init'd,有时它是按原样使用的。 显然,在我: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 Post: iOS7故事板图像选择器不起作用:(

编辑

似乎UIImagePickerController:initWithCoder可能有问题,但我不知道如何验证。

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

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

您不需要[ alloc] init] UIViewController

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM