可以从Application Delegate使用UIActionSheet吗?

时间:2010-09-12 22:45:42

标签: iphone objective-c delegates ios

我有一个共同的UIActionSheet,我在大约10个不同的视图/视图控制器中使用它。我想知道是否可以使用app委托中的UIActionSheet来防止代码重复?

到目前为止,我尝试使用委托中的操作表都没有用,我怀疑我的问题在于调用showInView方法时 - 我是否需要实例化视图控制器的对象然后使用{{ 1}}在这?如果是这样,我怎么能从委托中告诉哪个视图称为操作表方法?

2 个答案:

答案 0 :(得分:2)

我没有尝试c_phlat提出的方法,但我想知道self.view的映射方式。 我确实设法这样做:

[actionSheet showInView:window];

它的效果也一样。

答案 1 :(得分:0)

我遇到了同样的问题,我最近找到了一种方法来修复它在我的应用程序中。对我来说,关键是让我的app委托类成为UIViewController的扩展而不是NSObject。 (我认为UIViewController无论如何都是NSObject的子类,所以这不应该对你的应用程序造成太大的影响。)

换句话说,更改app委托接口文件中的主要实现行,如下所示:

@interface YourAppDelegate : NSObject <UIApplicationDelegate, UIActionSheetDelegate> {

对此:

@interface YourAppDelegate : UIViewController <UIApplicationDelegate, UIActionSheetDelegate> {

您现在应该可以在应用委托代理实施中将showInView:方法与您的操作表一起使用:

[yourActionSheet showInView:self.view];