2010-11-28 100 views
3

调用实例方法考虑该视图设置:从另一个类

alt text

我有一组子视图之间切换的视图控制器。每个子视图都是具有自定义代码的UIView子类。要切换视图,我使用switch语句将新视图分配为当前视图。这工作得很好。

我现在在一个位置,我有一个视图(MainMenu)与包含UITableView的子视图(PopUp)。 PopUp视图通过MainMenu.h类的实例方法显示和隐藏。让我们调用方法showPopUp和hidePopUp。

当用户从UITableView中选择一个项目时,他们必须通过单击关闭按钮来关闭包含(弹出)视图,该关闭按钮绑定到hidePopUp方法。

当用户选择UITableView中的项目时应该发生什么,应该自动触发hidePopUp方法。

如何通过UITableView的didSelectRowAtIndexPath触发hidePopUp实例方法?这是一个应用程序委托或NSNotificationCenter的工作吗?我已经试过这样的事情打电话

[[[UIApplication sharedApplication] delegate] closePopUp]; 

从didSelectRowAtIndexPath方法都无济于事......

由于提前,这可能是一些简单的我失踪。流感编程很困难!

+0

我不明白你怎么可以绑定的关闭按钮的MainView但没有UITableView的。你不把逻辑放在tableView的didSelectRowAtIndex中的关闭按钮里面吗? – 2010-11-28 23:47:45

回答

1

有几种方法可以完成这个任务,比如通知或者像应用程序委托一样通过单例工作(尽管singleton [anti]模式的使用并非没有争议)。就我个人而言,我会使用代表团。

喜欢的东西:

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

然后,您可以实现此协议在你的MainMenu,将其指定为弹出的委托,有弹出呼叫委托的方法时关闭按钮被按下,并从那里关闭弹出。

这里是一个伟大的职位如何,如果你选择走这条路线实现代表:How do I create delegates in Objective-C?