2017-05-31 2 views
0

Hallo ich bin neu bei iOS und unten ist mein Code Ich muss die Spitze, die ich von Anfrage erhalten Antwort ... bitte helfen Sie mir, ich bin hier stecken erste Ansicht Controller ist otp Ansicht zweiten vc ist verifyviewcontrollerObjectiv c iOS Passing Daten

Otp ch

#import <UIKit/UIKit.h> 
@interface OtpViewController : UIViewController 
@property (nonatomic, retain) NSString *str; 
@end 

otpviewcontroller.m

#import "OtpViewController.h" 
#import "VerifyViewController.h" 
@interface OtpViewController() <VerifyViewControllerDelegate> 
@property (weak, nonatomic) IBOutlet UIImageView *bbi; 
@property (weak, nonatomic) IBOutlet UIButton *submittf; 
@property (weak, nonatomic) IBOutlet UITextField *mobiletf; 
@property (weak,nonatomic) NSArray *tmp; 
@property(weak,nonatomic) NSString *requestReply ; 
//@property(weak,nonatomic) NSDictionary *A; 
@end 

@implementation OtpViewController 
- (void)viewDidLoad { 
[super viewDidLoad]; 
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background"]]; 
NSLog(@"viewDidLoad"); 
[super viewDidLoad]; 

} 

- (IBAction)submitb:(id)sender 
{ 

if (_mobiletf.text && _mobiletf.text.length >0) 
{ 
    /* not empty - do something */ 
    NSString *post = [NSString stringWithFormat:@"phone=%@",_mobiletf.text]; 
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
    // Next up, we read the postData's length, so we can pass it along in the request. 

    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 
    // Now that we have what we'd like to post, we can create an NSMutableURLRequest, and include our postData. 

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
    [request setURL:[NSURL URLWithString:@"http://www.sitesandflats.com/send_otp.php"]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
    [request setHTTPBody:postData]; 
    NSLog(@"the data Details is %@", post); 

    // And finally, we can send our request, and read the reply by creating a new NSURLSession: 

    NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; 
    [[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
     NSString *requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 
     NSLog(@"requestReply: %@", requestReply); 
     NSString *str=requestReply; 
     VerifyViewController *vc = [[VerifyViewController alloc] init]; 
     NSString *tmp=requestReply; 
     NSLog(@"%@",str); 
     NSLog(@"%@",_tmp); 

    }] resume]; 
    [ self performSegueWithIdentifier:@"b1" sender:self]; 
    } 
else 
{ 
    /* what ever */ 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" 
     message:@"Please check your input!!." 
     delegate:self 
     cancelButtonTitle:@"OK" 
     otherButtonTitles:nil]; 
    [alert show]; 
} 


} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(nullable id)sender{ 

VerifyViewController *loadCtr = (VerifyViewController *)segue.destinationViewController; 
loadCtr.delegate = self; 
loadCtr.tmpStr = (@"otp: %@",_tmp); 
NSLog(@"passing val: %@",_tmp); 
} 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
return YES; 
} 

Ansicht Controller.h

Verify 210
#import <UIKit/UIKit.h> 
@protocol VerifyViewControllerDelegate <NSObject> 
-(void)moveToA:(NSString *)str; 
@end 
@interface VerifyViewController : UIViewController 
@property (nonatomic, copy) NSString *tmpStr; 
@property (nonatomic, assign) id <VerifyViewControllerDelegate> delegate; 
//@property (nonatomic, strong) OtpViewController *received; 
//@property (strong, nonatomic) IBOutlet UITextField *textDisplay; 
@property(nonatomic,weak) NSMutableArray *myAray; 
@property(nonatomic,strong) NSString *object; 
@property(strong,nonatomic) NSString *tmp1; 
@end 

Ansicht Überprüfen Controller.m

#import "VerifyViewController.h" 
#import "OtpViewController.h" 
@interface VerifyViewController() 
@property (weak, nonatomic) IBOutlet UITextField *otptf; 
@property (weak, nonatomic) IBOutlet UIButton *submitb; 
//@property (weak,nonatomic) textDisplay; 
//@property (weak,nonatomic) NSString *received; 
@end 


@implementation VerifyViewController 
- (void)viewDidLoad { 
[super viewDidLoad]; 
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage  imageNamed:@"background"]]; 

// Do any additional setup after loading the view. 
} 
- (IBAction)submitb:(id)sender { 
NSLog(@"%@",_tmpStr); 
if(_otptf.text==_tmpStr) 
{ 
    [self performSegueWithIdentifier:@"b2" sender:self]; 
} 
else{ 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" 
                message:@"Incorrect otp please check the input!!!." 
                delegate:self 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 
    [alert show]; 

} 


} 

- (void)didReceiveMemoryWarning { 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

@end 

bei NSLog ich als ("Erfolg": "1", "OTP": "985123") erhalten antworten Ich brauche diese OTP zu speichern und überprüfen in nächste Seite bitte

+1

Sie können feststellen, [diese] (https://stackoverflow.com/questions/5210535/passing-dat a-zwischen-view-controllern) Link hilfreich. –

+0

2017-05-31 12: 10: 12.540 MenuBar [1315: 76259] Die Daten Details ist Telefon = 9047038606 2017-05-31 12: 10: 12.554 MenuBar [1315: 76259] passing val: (null) 2017- 05-31 12: 10: 13.267 MenuBar [1315: 76307] requestReply: {"Erfolg": 1, "otp": "118301"} 2017-05-31 12: 10: 13.268 MenuBar [1315: 76307] {" Erfolg ": 1," otp ":" 118301 "} 2017-05-31 12: 10: 13.269 MenuBar [1315: 76307] {" Erfolg ": 1," otp ":" 118301 "} – Akshay

+0

@EvgeniyKleban Ich habe überprüft es, aber die Antworten waren Bool Werte – Akshay

Antwort

0

Erste Hilfe benötigen Sie Eigenschaft ändern

Von

@property (weak,nonatomic) NSArray *tmp; 

Um

@property (strong,nonatomic) NSStirng *tmp; 

zuordnen Wert tmp wie unten

[[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"] ; // you need to extract value using the key [requestReply valueForKey:@"otp"]; 
      NSLog(@"%@",self.tmp); 

    }] resume]; 

Pass tmp VerifyVIewController

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(nullable id)sender{ 

VerifyViewController *loadCtr = (VerifyViewController *)segue.destinationViewController; 
loadCtr.delegate = self; 
loadCtr.tmpStr = self.tmp; 
NSLog(@"passing val: %@",_tmp); 
} 
+0

Dank für Ihre Mühe !! bt stilll erhalten vorbei I-Werte null bei log – Akshay

+0

2017.05.31 12: 43: 32,741 MenuBar [1398: 90.037] Gang val: (null) 2017-05-31 12: 43: 33.464 MenuBar [1398: 90096] requestReeply: {"Erfolg": 1, "otp": "753161"} 2017-05-31 12: 43: 33.464 MenuBar [1398: 90096] {"Erfolg": 1, "otp": "753161"} – Akshay

+0

Sie müssen Wert extrahieren. – KKRocks