Можно ли использовать UIActionSheet от Application Delegate? - PullRequest
1 голос
/ 13 сентября 2010

У меня есть общая UIActionSheet, которую я использую в 10 различных контроллерах вида / представления.Мне интересно, возможно ли использовать UIActionSheet от делегата приложения, чтобы предотвратить дублирование кода?

Пока мои попытки использовать лист действий от делегата не сработали, я подозреваю, что моя проблемаложь при вызове метода showInView - нужно ли создавать экземпляр объекта моего контроллера представления, а затем использовать viewController.view здесь?Если да, то как я могу узнать, какое представление вызвало метод листа действий от делегата?

Ответы [ 2 ]

2 голосов
/ 12 ноября 2010

Я не пробовал подход, предложенный c_phlat, но мне интересно, что отображается в self.view. Мне удалось сделать это так:

[actionSheet showInView:window];

это работает так же хорошо.

0 голосов
/ 23 сентября 2010

У меня была такая же проблема, и недавно я нашел способ исправить ее в своем приложении.Ключом для меня было сделать мой класс делегата приложения расширением UIViewController, а не NSObject.(Я думаю, что UIViewController является подклассом NSObject, так что это не должно сильно влиять на ваше приложение.)

Другими словами, измените основную строку реализации в файле интерфейса делегата приложения примерно так:

@interface YourAppDelegate : NSObject <UIApplicationDelegate, UIActionSheetDelegate> {

Для этого:

@interface YourAppDelegate : UIViewController <UIApplicationDelegate, UIActionSheetDelegate> {

Теперь вы сможете использовать метод showInView: с вашим листом действий в реализации делегата приложения:

[yourActionSheet showInView:self.view];  
...