我有一個名爲LoginViewController的UIViewController。 UIViewController有兩個UITextField,用戶名和密碼。當第一次啓動應用程序並且鑰匙串中沒有任何憑證時,這將顯示爲modalViewController。當用戶點擊登錄按鈕時,呈現的鍵盤被解除。代碼是:modalViewController問題與UITextField第一響應者
- (IBAction) loginClick: (UIButton *) sender
{
if ([username isFirstResponder]){
[username resignFirstResponder];
}
if ([password isFirstResponder]){
[password resignFirstResponder];
}
[RKObjectManager sharedManager].client.username = username.text;
[RKObjectManager sharedManager].client.password = password.text;
[progressLock lock];
[progressLock unlockWithCondition:0];
[HUD showWhileExecuting:@selector(myTask) onTarget:self withObject:nil animated:YES];
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/account/verify.json" objectClass:[Login class] delegate: self];
}
現在在應用程序中有一個選項按鈕。當這是點擊它會呈現一個modalViewController,它有一個註銷按鈕。點擊這個註銷按鈕將再次呈現LoginViewController。代碼是:
- (IBAction) logout:(id)sender
{
NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults];
NSString * username = [standardDefaults stringForKey:@"kApplicationUserNameKey"];
NSError * error = nil;
[standardDefaults removeObjectForKey:@"kApplicationUserNameKey"];
[SFHFKeychainUtils deleteItemForUsername:username andServiceName:@"convore" error:&error];
LoginViewController* lvc = [[LoginViewController alloc] init];
lvc.delegate = self;
[self.mgvc.groups removeAllObjects];
[self.mgvc.table reloadData];
Topic * topic = [Topic object];
topic.tid = [NSNumber numberWithInt:-2];
self.mgvc.detailViewController.topic = topic;
self.mgvc.detailViewController.detailItem = topic.tid;
[self presentModalViewController:lvc animated:YES];
[lvc release];
}
奇怪的是,我似乎無法解僱鍵盤,當我點擊登錄按鈕這次。爲什麼是這樣?是否因爲從現在開始,我正在使用modalviewcontroller顯示LoginViewController?我如何解決這個奇怪的問題?
這是一個好主意,所以你的意思是[self dismissModalViewControllerAnimated:YES]; [self presentModalViewController:lvc animated:YES]; ??我試過了,它不起作用..也許這不是它應該的方式 – adit 2011-06-08 15:54:24
你應該嘗試從模態視圖之外做到這一點,以產生影響。查看我的編輯,特別是我添加的選項3。 – sergio 2011-06-08 15:55:56
我怎樣才能從外面做到這一點?代表你的意思? – adit 2011-06-08 15:57:11