سؤال

لدي فترة طويلة - (void)viewDidLoad { } الوظيفة التي تستخدم الإنترنت لتحميل صفحة ، وعندما يقوم التطبيق بتحميل عنوان URL ، تكون الشاشة سوداء. انا املك UIActivityIndicator الإعداد لإظهار أن العنوان يتم تحميله ، لكنني لا أعرف كيفية منعه من الظهور كما لو كان التطبيق لا يستجيب ، ولا أريد أن أظهر مؤشر نشاط الشبكة [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; لأن الشاشة ستظل سوداء ، فقط مع محمل في الزاوية العلوية. الكود الخاص بي أدناه:

- (void)viewDidLoad {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    email.text = [defaults objectForKey:@"mom_email"];
    pass.text = [defaults objectForKey:@"mom_pass"];
    if (email.text != nil && pass.text != nil) {
        [self login:loginBtn];
    }
}
- (IBAction)login:(id)sender {
    [email resignFirstResponder];
    [pass resignFirstResponder];
    [loader startAnimating]; // Does nothing though
    NSString *em = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)email.text,NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8);
    NSString *ps = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)pass.text,NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8);
    NSURL *url = [[NSURL alloc] initWithScheme:@"http" host:@"localhost" path:[[NSString alloc] initWithFormat:@"/app/login.php?email=%@&pass=%@", em, ps]];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *loginResult = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
    [loader stopAnimating];
    NSRange range = [loginResult rangeOfString:@"1"];
    if (range.location != NSNotFound) {
        [self dismissModalViewControllerAnimated:YES]; // Doesn't do anything if function called from viewDidLoad
    }
}

لا يوجد حل صحيح

نصائح أخرى

بدلاً من حظر الحمولة في ViewDidload ، حاول بدء تشغيل مؤشر ترابط جديد يقوم بالتحميل. بعد ذلك ، يمكنك فقط بدء العرض بالنص الذي يقول إن الأشياء يتم تحميلها وتحديث أي محتوى ضروري بمجرد توفره.

ربما يمكنك إضافة نص يقول شيئًا ما يتم تحميله. أو يمكنك أيضًا اللعب مع أساليب مندوب NSURLConnection لتوفير شريط تقدم بدلاً من مجرد مؤشر تقدم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top