Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 网间网操作系统。segue.destinationViewController对象与加载的控制器不同_Ios_Uinavigationcontroller_Segue - Fatal编程技术网

Ios 网间网操作系统。segue.destinationViewController对象与加载的控制器不同

Ios 网间网操作系统。segue.destinationViewController对象与加载的控制器不同,ios,uinavigationcontroller,segue,Ios,Uinavigationcontroller,Segue,我正在尝试使用导航控制器在两个ViewController之间进行转换,segue.destinationViewController引用的对象是:0x1cd93590(下一个视图),但当对新视图进行更改时,该视图具有不同数量的对象:0x1cd4556d0。我的代码是: - (void)updateCodeProduct:(NSString *)code { [session stopRunning]; AudioServicesPlaySystemSound(kSystemS

我正在尝试使用导航控制器在两个ViewController之间进行转换,segue.destinationViewController引用的对象是:0x1cd93590(下一个视图),但当对新视图进行更改时,该视图具有不同数量的对象:0x1cd4556d0。我的代码是:

- (void)updateCodeProduct:(NSString *)code {
    [session stopRunning];

    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    AudioServicesPlaySystemSound(1111);

    // db acces.
    NSString *cadena = @"http://172.20.10.2/consultaProd.php?codigo=";
    cadena = [cadena stringByAppendingString:codigo];
    NSURL *url = [NSURL URLWithString:cadena];
    NSError *error = nil;

    NSString *retorno = [[NSString alloc] initWithContentsOfURL:url encoding:NSASCIIStringEncoding error:&error];
    if (retorno == nil) {
        NSLog(@"Error %@\n%@", url, [error localizedFailureReason]);
        return;
    }

    self.detailProd = nil;
    self.detailProd = [retorno componentsSeparatedByString:@"\n"];

    [self performSegueWithIdentifier:@"DetailSegue" sender:self];    
}
prepareForSegue方法为:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSLog(@"%@", [segue destinationViewController]);

    if ([segue.identifier isEqualToString:@"DetailSegue"]) {
        [segue.destinationViewController updateDetail:detailProd];
    }
}
执行segue,但视图不反映当前信息,因为它是另一个对象


任何帮助都将不胜感激:)

updateDetail方法的作用是什么?如果它试图更新目标控制器中的控件,那么现在这么做还为时过早,因为还没有创建控件。您只需要在目标控制器中设置属性(例如
NSString
或任何内容)。然后,目标控制器应获取该属性并在该目标控制器的
viewDidLoad
中更新其控件


简而言之,目标控制器的地址将与视图控制器本身的地址相同。您没有向我们显示您报告的这两个地址的
NSLog
语句,因此我们无法说出那里发生了什么。

updateDetail方法的作用是什么?如果它试图更新目标控制器中的控件,那么现在这么做还为时过早,因为还没有创建控件。您只需要在目标控制器中设置属性(例如
NSString
或任何内容)。然后,目标控制器应获取该属性并在该目标控制器的
viewDidLoad
中更新其控件


简而言之,目标控制器的地址将与视图控制器本身的地址相同。您没有向我们显示您报告的这两个地址的
NSLog
语句,因此我们无法说明发生了什么。

谢谢@Rob,方法-updateData属于DetailViewController,并更新两个UILabel,quote(如果它试图更新目标控制器中的控件,那么现在这么做还为时过早,因为控件尚未创建)。我更正了在-viewdidLoad方法中创建字符串和更新标签的错误。效果很好……非常感谢。:)Thank@Rob,该方法-UpdateDetail属于DetailViewController,并更新两个UILabel,quote(如果它试图更新目标控制器中的控件,那么现在这样做还为时过早,因为还没有创建控件)。我在-viewdidLoad方法中通过创建NSString和更新标签来纠正这个问题。而且效果很好。。。。非常感谢。:)