Ios 网间网操作系统。segue.destinationViewController对象与加载的控制器不同
我正在尝试使用导航控制器在两个ViewController之间进行转换,segue.destinationViewController引用的对象是:0x1cd93590(下一个视图),但当对新视图进行更改时,该视图具有不同数量的对象:0x1cd4556d0。我的代码是:Ios 网间网操作系统。segue.destinationViewController对象与加载的控制器不同,ios,uinavigationcontroller,segue,Ios,Uinavigationcontroller,Segue,我正在尝试使用导航控制器在两个ViewController之间进行转换,segue.destinationViewController引用的对象是:0x1cd93590(下一个视图),但当对新视图进行更改时,该视图具有不同数量的对象:0x1cd4556d0。我的代码是: - (void)updateCodeProduct:(NSString *)code { [session stopRunning]; AudioServicesPlaySystemSound(kSystemS
- (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和更新标签来纠正这个问题。而且效果很好。。。。非常感谢。:)