2012-05-10 72 views
0

我在看朋友的代碼,不確定這是如何工作的。有一個單例可以與Web服務進行通信以下載數據。 WebServiceObject是NSObject的一個子類。下載來自於主頁上的一個UIViewController。從非視圖類中顯示UIAlertView

在WebServiceObject,出問題的時候,他的作用:

UIAlertView *alert = [[UIAlertView alloc] init...]; 
[alert show]; 

警報節目。儘管執行它的代碼是非視圖對象,但該警報如何顯示?我問的原因是因爲我想在網絡重新啓動時刪除該警報。由於網絡觀察發生在WebServiceObject中,我不確定如何訪問UIAlertView對象。我想在我做的其他代碼中,我會做類似

[self.view viewWithTag:NETWORK_ALERT_TAG]; 

或其他影響。這是因爲視圖代碼是在模型代碼中,而是我應該改變他的代碼以發佈通知到視圖代碼來顯示警報,並且以這種方式抓取它?謝謝一堆!

回答

1

UIAlertView的-show方法創建自己的窗口,覆蓋在應用程序的窗口頂部,在其中顯示;因此,它不是應用程序視圖層次結構的一部分。爲了隱藏它,你需要一個對alert視圖本身的引用,可能作爲WebServiceObject上的一個屬性公開。