gpt4 book ai didi

iphone - 从类方法调用 popViewController

转载 作者:行者123 更新时间:2023-12-01 19:15:35 25 4
gpt4 key购买 nike

我想从 View 1 的类方法中返回我的 Root View 。在 View 1 的实例方法中,我只想说

[self.navigationController popViewControllerAnimated:YES];

但自从 self不适用于类方法,我想知道如何实现这一点。关于下图,我目前在 View1Controller.m 的类方法中,我想回到 Rootview。谢谢。

enter image description here

最佳答案

您可以声明另一个方法:

-(void)closeThisViewController
{
[self.navigationController popViewControllerAnimated:YES];
}

然后使用通知中心:
[[NSNotificationCenter defaultCenter] postNotificationName:@"notif_closeThisVC" selector:@selector(closeThisViewController) object:nil];

尽管正如 jonkroll 所说,您正在处理 View Controller 的东西,但我们不明白为什么要将与 View Controller 相关的代码放在类方法中。

编辑

对不起上面的错误代码。

我的意思是说你可以使用 NSNotificationCenter 来发布通知:
-(void)postNotificationName:(NSString *)notificationName object:(id)notificationSender

然后在同一个 View Controller 中声明一个 NSNotificationCenter 观察者:
- (void)addObserver:(id)notificationObserver selector:(SEL)notificationSelector name:(NSString *)notificationName object:(id)notificationSender

我的大脑比我的手指快,所以当我试图解释解决方案时,我有点将两者合二为一:P

它应该更像这样:
// posting a notification with NSNotificationCenter
[[NSNotificationCenter defaultCenter] postNotificationName:@"notif_closeThisVC" object:nil];

在某处的 viewDidLoad 方法中(我建议在顶部),添加以下内容:
-(void)viewDidLoad
{
// adding an observer with NSNotificationCenter
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(closeThisViewController) name:@"notif_closeThisVC" object:nil];

...
}

希望有帮助。

关于iphone - 从类方法调用 popViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13617402/

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