2017-02-09 32 views
1
- (IBAction)loginButtonAction:(id)sender 
{ 
    [self.navigationController popToViewController: 
[self.navigationController.viewControllers   
objectAtIndex:self.navigationController.viewControllers.count -2] 
animated:YES]; 

} 

這在第二視圖控制器我的註銷代碼,我要上登出點擊 按鈕時,在用戶名和密碼的登錄屏幕刪除文本
。請可以有人幫助我嗎?如何在第二個視圖控制器中的Logout按鈕上點擊第一個視圖控制器的文本框時消除文本?

回答

1

您可以爲此使用委託或NSNotification。

代表。

讓你有兩個視圖控制器。一個是ViewController和其他NextViewController,你想從NextViewController註銷並清除ViewController中的文本。

步驟:在NextViewController.h

#import <UIKit/UIKit.h> 

@protocol clearTextField <NSObject> 
-(void)clearTextFieldInPreviousController: (NSString *)string; 

@end 

@interface NextViewController : UIViewController 
@property (assign,nonatomic) id delegate; 

@end 

在nextViewController.m

- (IBAction)loginButtonAction:(id)sender 
{ 
    [_delegate clearTextFieldInPreviousController:@""]; 
    [self.navigationController popToViewController: 
[self.navigationController.viewControllers   
objectAtIndex:self.navigationController.viewControllers.count -2] 
animated:YES]; 

} 

,並在您ViewController.m

-(void)clearTextFieldInPreviousController: (NSString *)string{ 
    NSLog(@"Fired"); 
    self.label.text [email protected]""; 
} 

//注意纔去下一個控制器。你將不得不設置委託。

– (IBAction)goNextButtonAction:(id)sender { 
    NextViewController *acontollerobject=[self.storyboard instantiateViewControllerWithIdentifier:@"NVCSID"]; 

    acontollerobject.delegate=self; // protocol listener 
    [self.navigationController pushViewController:acontollerobject animated:YES]; 
} 

你可以訪問這個鏈接Demo Example

1

有許多方法可以實現這一點。

  1. 使用委託將消息傳遞給第一個viewcontroller關於第二個視圖控制器的註銷事件並重置傳遞的消息實現中的視圖。

  2. 我建議你製作第二個視圖控制器作爲rootViewController,而不要將登錄視圖保留爲導航堆棧的一部分。您可以通過第二個View控制器將登錄控制器顯示爲模式viewController。

+0

感謝金正日會盡力的。 – Megha

相關問題