我有一个共同的UIActionSheet
,我在大约10个不同的视图/视图控制器中使用它。我想知道是否可以使用app委托中的UIActionSheet
来防止代码重复?
到目前为止,我尝试使用委托中的操作表都没有用,我怀疑我的问题在于调用showInView
方法时 - 我是否需要实例化视图控制器的对象然后使用{{ 1}}在这?如果是这样,我怎么能从委托中告诉哪个视图称为操作表方法?
答案 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];