- (IBAction)loginButtonAction:(id)sender
{
[self.navigationController popToViewController:
[self.navigationController.viewControllers
objectAtIndex:self.navigationController.viewControllers.count -2]
animated:YES];
}
这是我在第二视图控制器中的注销代码,我想删除文本
在Logout上单击用户名和密码的登录屏幕
按钮..请有人帮助我吗?
答案 0 :(得分:1)
有很多方法可以实现这一目标。
使用委托从第二个视图控制器向第一个viewcontroller传递有关logout事件的消息,并在传递的消息实现中重置视图。
我建议您将第二个视图控制器设置为rootViewController,而不是将登录视图保留为导航堆栈的一部分。您可以通过第二个视图控制器将登录控制器显示为模态viewController。
答案 1 :(得分:1)
您可以使用委托或NSNotification。
代表。
让你有两个View Controller ..一个是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 =@"";
}
//在转到下一个控制器之前注意。您必须设置代理。
– (IBAction)goNextButtonAction:(id)sender {
NextViewController *acontollerobject=[self.storyboard instantiateViewControllerWithIdentifier:@"NVCSID"];
acontollerobject.delegate=self; // protocol listener
[self.navigationController pushViewController:acontollerobject animated:YES];
}
您可以访问Answer by kenorb
的此链接