我正在尝试在页面加载时调用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];
}
}
我该怎么办?请帮忙......
答案 0 :(得分:2)
如果要在加载视图并且没有任何事件后调用该方法,则需要将其作为普通实例方法而不是IBAction方法。 - (无效)提交按钮{ //实施 }
然后从viewDidAppear调用此方法。
答案 1 :(得分:0)
这里可能有一些问题。
IBActions通常采用参数。声明为:
- (IBAction) submitButton: (id) sender;
然后从您的viewDidAppear
方法中调用它:
[self submitButton: self];
还要确保主要线程上发生UI内容(您没有指定应用程序是否是多线程的),所以可能:
[self performSelectorOnMainThread: @selector(submitButton:) withObject: self];
和
设置断点以查看在调用submitButton
时是否实际调用了viewFromAppear:
方法(及其前面的行)。
Rishi的建议也很好!