【发布时间】:2017-10-25 18:55:53
【问题描述】:
我是 iOS 开发和堆栈溢出的新手。我需要在多个 UILabel 和 UITextField 中显示用户的数据,数据是从 POST 方法中获取的。从服务器获取数据有一点延迟。获取详细信息后如何重新加载或填充元素。 这是我的 viewDidLoad()
@interface EditProfileViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *displayPictureView;
@property (weak, nonatomic) IBOutlet UITextField *firstnameFeld;
@property (weak, nonatomic) IBOutlet UITextField *lastNameField;
@property (weak, nonatomic) IBOutlet UITextField *emailField;
@property (weak, nonatomic) IBOutlet UITextField *bdayField;
@property (weak, nonatomic) IBOutlet UIButton *calField;
@property (weak, nonatomic) IBOutlet UITextView *addressTextView;
@property (weak, nonatomic) IBOutlet UILabel *userIDLabel;
@property (weak, nonatomic) IBOutlet UILabel *phoneNumberLabel;
@property (weak, nonatomic) IBOutlet UIScrollView *editScrollView;
@end
@implementation EditProfileViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.editScrollView.delegate=self;
}
我使用代码从服务器接收数据,我在 viewDidLoad() 中有这个 POST 方法
NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue]];
NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:urlEdit];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPBody:[editParameters dataUsingEncoding:NSUTF8StringEncoding]];
NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"Response:%@ \nError:%@\n", response, error);
if(error == nil)
{
NSString * text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSLog(@"DataText = %@",text);
}
NSError *error2 = nil;
jsonDicEditAcc = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error2];
if (error2 != nil) {
NSLog(@"Error parsing JSON.");
}
else {
NSLog(@"JsonDictEditAcc: \n%@",jsonDicEditAcc);
[self dismissViewControllerAnimated:alert completion:nil];}
}];
[dataTask resume];
我将从“jsonDicEditAcc”中提取数据,我需要知道如何在获取数据后填充 UILabel 和 UITextField,因为在获取数据之前已加载视图。我试过 viewWillAppear() 没用。帮帮我..提前谢谢..
【问题讨论】:
-
有很多方法都取决于您的要求。您可以在初始时隐藏这些标签,并在加载数据时分配数据并显示标签,或者您可以使用任何活动指示器来显示正在发生的事情。
-
如何在收到数据之前隐藏标签并在之后加载 uielements..??
标签: ios objective-c json