gpt4 book ai didi

objective-c - 从另一个类调用实例方法

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:18 25 4
gpt4 key购买 nike

考虑这个 View 设置:

alt text

我有一个 View Controller ,它在一组 subview 之间切换。每个 subview 都是一个带有自定义代码的 UIView 子类。要切换 View ,我使用 switch 语句将新 View 分配为当前 View 。这非常有效。

我现在处于一个 View (MainMenu) 和一个包含 UITableView 的 subview (PopUp) 的位置。 PopUp View 通过 MainMenu.h 类的实例方法显示和隐藏。让我们调用方法 showPopUp 和 hidePopUp。

当用户从 UITableView 中选择一个项目时,他们必须通过单击绑定(bind)到 hidePopUp 方法的关闭按钮手动关闭包含 (PopUp) View 。

当用户在 UITableView 中选择一个项目时,应该自动触发 hidePopUp 方法。

如何通过 UITAbleView 的 didSelectRowAtIndexPath 触发 hidePopUp 实例方法?这是应用程序委托(delegate)的工作,还是 NSNotificationCenter?我已经尝试过调用

[[[UIApplication sharedApplication] delegate] closePopUp]; 

从 didSelectRowAtIndexPath 无济于事...

提前致谢,这可能是我缺少的简单内容。感冒编程很困难!

最佳答案

有几种方法可以实现这一点,例如通知或通过像应用委托(delegate)这样的单例工作(尽管使用单例[反]模式并非没有争议)。就个人而言,我会使用委托(delegate)。

类似于:

@protocol PopUpDelegate
@optional
- (void)Popup:(YourPopUpClass *)popUp didEndWithData:(NSData *)blah;
@end

然后您可以在 MainMenu 中实现此协议(protocol),将其指定为 Popup 的委托(delegate),让 Popup 在按下关闭按钮时调用委托(delegate)的方法,并从那里关闭弹出窗口。

如果您选择走这条路,这里有一篇关于如何实现委托(delegate)的好文章:How do I create delegates in Objective-C?

关于objective-c - 从另一个类调用实例方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4299535/

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