2012-02-03 50 views
1

所示只是爲了測試它,我啓用了狀態欄的活動的指標如下:網絡活動指示燈不亮iPhone(iOS 5中)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible: TRUE]; 

    //... 
} 

我從來沒有禁用指示器,它應該永遠是可見的,但事實並非如此。它在iPhone模擬器中可見,但不在設備上。爲什麼?

+0

您是否在代碼中的任何其他位置禁用指示器(不一定在應用程序委託中)? – Mutix 2012-02-03 13:23:04

+0

不,其他地方。 – Waterman 2012-02-03 15:48:56

+0

這是否僅在iOS 5設備上發生?你能在4.3設備上重現這一點嗎? – Mutix 2012-02-03 16:34:57

回答

2

請不要在撥打電話didFinishLaunchingWithOptions時應用程序不活動。您應該將其移至viewDidLoad方法。因此,代碼應該看起來像這樣:

- (void)viewDidLoad { 
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; 
    // Some other code goes here... 
    [super viewDidLoad]; 
} 

或者你可以把這個代碼放在視圖已經加載的任何地方。一旦數據加載完畢,不要忘記停止它。

+0

這真的很奇怪。我關掉了我的測試電話一天,因爲我不得不在另一個項目上工作。今天我試了一下你的建議,它很有用。但是,如果我在didFinishLaunchingWithOptions中進行此調用,它也可以工作。我還注意到現在出現了WLAN圖標,這也是我之前錯過的。所以整個問題都消失了,但我不知道爲什麼。我已經嘗試通過關閉和再次打開手機來儘早解決此問題。但這並不重要。唯一的區別是,手機現在已經關閉了更長的時間...?! – Waterman 2012-02-08 06:53:22

+0

_viewDidLoad_僅在應用程序終止時調用。所以你必須在測試之前終止應用程序。你應該真的看看你的應用程序,並在進行任何網絡調用之前調用它。當您從服務器獲得答案時,應該禁用網絡指示器。 – 2012-02-08 07:35:48

+0

我不確定你的意思。每次加載新構建之前,應用程序都會終止。並且需要新的構建來測試更改。你的意思是別的嗎? – Waterman 2012-02-08 09:10:18