私はiOS
を初めて使用しています。コントローラ間でデータを受け渡しできません。私は、これは私が最初のビューコントローラ(送信)のビューコントローラiOSの目的cがビューコントローラ間でデータを渡す
.hファイルを受信する.hファイルにデリゲートを作成した合格のための私の方法であり、第2のビューコントローラに
を変数にアクセスすることはできませんよ @interface OtpViewController:UIViewController @property(nonatomic、strong)NSString * str; @property(強く、非原子性)NSString * tmp; @property(weak、nonatomic)NSString * requestReply;
最初のビューコントローラ(送信側)は、第2のビューコントローラ(受信)
-(void)setotp:(NSDictionary *)dic withMobile:(NSString *)str{
self.stri=[tmpdict valueforkey:@"otp"];
self.stri1=_mobiletf.text;
OtpViewController.[tmpdict valueforkey:@"otp"]=self.stri;
NSLog(@"%@----%@",self.stri,self.stri1);
}
第2のビューコントローラ(受信)
の.hファイルの- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(nullable id)sender{
VerifyViewController *loadCtr = (VerifyViewController *)segue.destinationViewController;
loadCtr.delegate = self;
loadCtr.tmpStr = self.tmp;
NSLog(@"--%@",self.tmp);
[loadCtr setotp:self.tmpdict withMobile:_mobiletf.text];
//NSLog(@"otp:%@",[tmpdict valueForKey:@"otp"]);
NSLog(@"mobile:%@",_mobiletf.text);
}
.mファイルの.mファイル
@protocol VerifyViewControllerDelegate <NSObject>
@end
@interface VerifyViewController : UIViewController
@property (nonatomic,strong) NSString *otpStr;
@property(nonatomic,strong) NSString *mobileStr;
@end
実際に私はサーバからotp
を取得しようとしており、私は012を抽出しました最初のビューコントローラのと今はotp
と携帯電話番号をテキストフィールドから2番目のビューコントローラに渡して、otp
の確認をお願いします。
@interface VerifyViewController : UIViewController
@property (nonatomic,strong) NSString *otpStr;
@property(nonatomic,strong) NSString *mobileStr;
はその後、値を渡す:履歴書の外で印刷されているもののログで
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
[[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; // this is json string
// NSError *error;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; // you need to convert to dictionary object
NSLog(@"requestReply: %@", jsonDict);
self.tmp=[jsonDict valueForKey:@"otp"] ;
self.str=self.tmp;
NSLog(@"tmp storage inside block:%@",self.tmp);
}] resume];
[ self performSegueWithIdentifier:@"b1" sender:self];
NSLog(@" storage:%@",self.str);
NSLog(@"tmp storage:%@",self.tmp);
}
は、私は、これは私のログデータコードの下
2017-06-01 12:26:45.803 MenuBar[2652:124758] 9047038606
2017-06-01 12:26:45.809 MenuBar[2652:124758] storage:(null)
2017-06-01 12:26:45.810 MenuBar[2652:124758] tmp storage:(null)
2017-06-01 12:26:48.422 MenuBar[2652:124804] requestReply: {
otp = 325106;
success = 1;
}
2017-06-01 12:26:48.422 MenuBar[2652:124804] tmp storage inside block:325106
リンクを参照してくださいhttps://www.infragistics.com/community/blogs/torrey-betts/archive/2014/05/29/passing-data-between-view-controllers-ios-obj-c。 aspxまたはhttps://stackoverflow.com/questions/5210535/passing-data-between-view-controllers – user3575114
[View Controller間でデータを受け渡しする]可能な複製(https://stackoverflow.com/questions/5210535/passing-data) -between-view-controllers) – Lion