Objective c 如何从被调用的ViewController修改sender ViewController?
我有一个从故事板序列调用的登录视图控制器。当用户正确登录时,我需要关闭当前ViewController,返回调用者ViewController并隐藏登录按钮Objective c 如何从被调用的ViewController修改sender ViewController?,objective-c,ios,cocoa-touch,uiviewcontroller,Objective C,Ios,Cocoa Touch,Uiviewcontroller,我有一个从故事板序列调用的登录视图控制器。当用户正确登录时,我需要关闭当前ViewController,返回调用者ViewController并隐藏登录按钮 如何引用sender ViewController来隐藏按钮?我是否必须将root视图控制器的实例传递给登录名,还是有其他方法?您应该使用委派。用按钮使VC成为另一个的代理。登录成功后,您将退出VC并调用委托方法隐藏按钮 使用委托 为您的DeAliviewController创建一个协议,如 @protocol DetailViewCont
如何引用sender ViewController来隐藏按钮?我是否必须将
root
视图控制器的实例传递给登录名,还是有其他方法?您应该使用委派。用按钮使VC成为另一个的代理。登录成功后,您将退出VC并调用委托方法隐藏按钮 使用委托
为您的DeAliviewController创建一个协议,如
@protocol DetailViewControllerDelegate <NSObject>
-(void)successFullyLoggedInOnController:(DetailViewController *) controller;
@end
现在,在MasterViewController显示DetailViewController之前,doe类似于
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"DetailViewSegue"]) {
DetailViewController *vc = segue.destinationViewController;
vc.delegate = self;
}
}
在DetailViewController中,输入并验证凭证后,调用
[self.delegate successFullyLoggedInOnController:self];
然后关闭DetailViewController
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"DetailViewSegue"]) {
DetailViewController *vc = segue.destinationViewController;
vc.delegate = self;
}
}
[self.delegate successFullyLoggedInOnController:self];