gpt4 book ai didi

objective-c - 如何从被调用的 ViewController 修改发送者 ViewController?

转载 作者:行者123 更新时间:2023-11-28 22:42:36 24 4
gpt4 key购买 nike

我有一个从 Storyboard segue 调用的登录 View Controller 。当用户正确登录后,我需要关闭当前的ViewController,返回到调用者ViewController并隐藏登录按钮。

如何引用发送者 ViewController 来隐藏按钮?我必须将 root ViewController 的实例传递给登录名还是有其他方法?

最佳答案

使用委托(delegate)。

为您的 DetaliViewControler 创建一个协议(protocol),例如

@protocol DetailViewControllerDelegate <NSObject>
-(void)successFullyLoggedInOnController:(DetailViewController *) controller;
@end

像这样向 DetailViewController 的接口(interface)添加委托(delegate)声明

@property (weak) id<DetailViewControllerDelegate> delegate;

使MasterViewController符合协议(protocol)。

-(void)successFullyLoggedInOnController:(DetailViewController *) controller
{
[self.loginButton setHidden:YES];
}

现在就在 MasterViewController 显示 DetailViewController 之前,做类似的事情

- (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

关于objective-c - 如何从被调用的 ViewController 修改发送者 ViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14103091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com