2010-09-12 24 views
1

我有一個共同的UIActionSheet,我使用了約10個不同的視圖/視圖控制器。我想知道是否可以使用應用代理中的UIActionSheet來防止代碼重複?可能使用應用程序委託的UIActionSheet?

到目前爲止,我用從委託一個動作片的企圖都沒有奏效,我懷疑我的問題在於調用showInView方法的時候 - 我需要我的實例化視圖控制器的一個對象,然後用viewController.view這裏?如果是這樣,我怎麼才能從委託中知道哪個視圖叫做操作表方法?

回答

0

我遇到了同樣的問題,最近我想出了一種方法在我的應用程序中修復它。對我來說,關鍵是讓我的應用程序委託類是UIViewController的擴展而不是NSObject。從東西在你的應用程序委託接口文件(我認爲的UIViewController是NSObject的子類,無論如何,所以這應該不會影響您的應用程序太多)

換句話說,改變主要執行一行:

@interface YourAppDelegate : NSObject <UIApplicationDelegate, UIActionSheetDelegate> { 

要這樣:

@interface YourAppDelegate : UIViewController <UIApplicationDelegate, UIActionSheetDelegate> { 

您現在應該能夠使用showInView:

012:應用程序委託實現中的方法與你的動作片
2

我沒有嘗試c_phlat提出的方法,但我想知道什麼self.view映射。 我確實設法這樣做:

[actionSheet showInView:window]; 

它的工作原理也一樣。

相關問題