2011-12-25 4 views
0

Я пытаюсь вызвать веб-службу при загрузке страницы. В настоящее время я вызываю его одним нажатием кнопки, и он работает нормально. Но когда я пытаюсь сделать то же самое на viewDidAppear, этого не происходит. То, что я хочу достичь, - это сохранить имя пользователя и пароль, а затем автоматически загрузить следующую страницу. Он заполняет текстовые поля, но не загружает следующую страницу.Как вызвать веб-службу при загрузке страницы

Вот мой код для кнопки отправки и ViewDidAppear:

-(IBAction)submitButton{ 
[apd showCoverView:YES WithActivityIndicator:YES]; 
PlaceWebService *handler = [[PlaceWebService alloc]init]; 
[handler setRequestType:Loginparser]; 
NSString *url = [NSString stringWithFormat:@"http://www.mywebsite.com/api.php?command=auth&cardno=%@&password=%@",username.text,password.text]; 
[handler sendingLoginRequest:url Respond:self At:@selector(showParsed:)];  
} 

и viewDidAppear

-(void)viewDidAppear:(BOOL)animated 
{ 
NSLog(@"Appeared"); 
[self loginArea]; 
apd=[[UIApplication sharedApplication]delegate]; 
NSString *filepath=[self pathOfFile]; 
if([[NSFileManager defaultManager]fileExistsAtPath:filepath]) 
{ 
    NSArray *array=[[NSArray alloc]initWithContentsOfFile:filepath]; 
    username.text=[array objectAtIndex:0]; 
    password.text=[array objectAtIndex:1]; 
      [self submitButton]; 
} 
} 

Что я должен делать? Пожалуйста, помогите ...

+1

Не забудьте запустить его асинхронно, иначе пользователь может подумать, что приложение работает медленно. – Justin

ответ

0

Здесь может возникнуть проблема с паролем.

1)

IBActions обычно принимает параметр. Объявляем его как:

- (IBAction) submitButton: (id) sender; 

И затем вызвать его из метода viewDidAppear как:

[self submitButton: self]; 

2)

Также убедитесь, что материал UI происходит в главном потоке (вы не сделали указать, если приложение является многопоточных или нет), так что, может быть:

[self performSelectorOnMainThread: @selector(submitButton:) withObject: self]; 

и

3)

Установить точки останова, чтобы увидеть, если ваш метод submitButton (и линии перед ним), фактически даже называют, когда viewFromAppear: называется.

И предложение Риши тоже хорошее!

+0

эй я попробовал все это, а также написал все эти строки кода в viewDidAppear. но все же веб-службы не будут вызваны .. stuck .. –

+0

вы перешагнули каждую строку кода в отладчике, чтобы узнать, вызваны ли строки в вашем методе 'submitButton' из' viewDidAppear: '? –

2

Если вы хотите вызвать метод после загрузки изображения и без какого-либо события, вам нужно это как обычный метод экземпляра вместо метода IBAction. - (Пустота) submitButton { // Реализация }

, а затем вызвать этот метод из viewDidAppear.

Смежные вопросы