如何在页面加载时调用Web服务

时间:2011-12-25 13:02:20

标签: iphone

我正在尝试在页面加载时调用Web服务。目前我通过点击按钮调用它,它工作正常。但是当我尝试在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];
}
}

我该怎么办?请帮忙......

2 个答案:

答案 0 :(得分:2)

如果要在加载视图并且没有任何事件后调用该方法,则需要将其作为普通实例方法而不是IBAction方法。      - (无效)提交按钮{      //实施     }

然后从viewDidAppear调用此方法。

答案 1 :(得分:0)

这里可能有一些问题。

1)

IBActions通常采用参数。声明为:

- (IBAction) submitButton: (id) sender;

然后从您的viewDidAppear方法中调用它:

[self submitButton: self];

2)

还要确保主要线程上发生UI内容(您没有指定应用程序是否是多线程的),所以可能:

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

3)

设置断点以查看在调用submitButton时是否实际调用了viewFromAppear:方法(及其前面的行)。

Rishi的建议也很好!