【问题标题】:Possible to use UIActionSheet from Application Delegate?可以从应用程序委托中使用 UIActionSheet 吗?
【发布时间】:2010-09-12 22:45:41
【问题描述】:

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

到目前为止,我尝试使用委托的操作表没有奏效,我怀疑我的问题出在调用 showInView 方法时 - 我需要实例化我的视图控制器的对象然后在此处使用 viewController.view ?如果是这样,我如何才能知道哪个视图从委托中调用了操作表方法?

【问题讨论】:

    标签: iphone objective-c delegates ios


    【解决方案1】:

    我没有尝试 c_phlat 提出的方法,但我想知道 self.view 映射到什么。 我确实做到了:

    [actionSheet showInView:window];
    

    效果也一样。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,我最近想出了一种方法来在我的应用程序中解决它。对我来说,关键是让我的应用程序委托类成为 UIViewController 而不是 NSObject 的扩展。 (我认为 UIViewController 无论如何都是 NSObject 的子类,所以这不会对您的应用产生太大影响。)

      换句话说,将您的应用委托接口文件中的主要实现行从以下内容更改:

      @interface YourAppDelegate : NSObject <UIApplicationDelegate, UIActionSheetDelegate> {
      

      到这里:

      @interface YourAppDelegate : UIViewController <UIApplicationDelegate, UIActionSheetDelegate> {
      

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

      [yourActionSheet showInView:self.view];  
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多