2015-03-03 59 views
-1

我的應用程序中我想實現一項功能,我在我的應用程序中有一個按鈕,並且我希望當網絡從iOS設備中丟失時,此按鈕應該自動變爲禁用,並且當再次使網絡可用時,則按鈕應該變爲啓用。當網絡在ios設備中不可用時禁用UIButton的用戶交互

這應該在每次設備網絡連接丟失或變爲可用時自動完成。

我沒有得到任何方式或任何類型的線索來實現這一功能,如果有人知道如何在iOS應用程序中實現此功能,那麼請幫助我。

提前致謝。

回答

1

可以使用的NSTimer並在該定時器可以每2秒後撥打可達性類的BOOL功能,使其重複是返回的虛假

NSTimer* internetTimer; 
internetTimer=[NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector:@selector(checkInternet) userInfo:nil repeats:YES]; 

-(void)checkInternet{ 
    if([self isInternetAvailable]) 
    { 
      //enable button 
    } 
    else 
    { 
      //disable button 
    } 

} 

-(BOOL)isInternetAvailable() 
{ 
    Reachability *networkReachability = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus networkStatus = [networkReachability currentReachabilityStatus]; 
    return !(networkStatus == NotReachable); 

} 

真,您可以找到可達類.H和.m在這裏。只需在你的項目中添加這兩個文件。 https://github.com/tonymillion/Reachability

如果您在模式ARC,可能是你也必須設置FNO標誌爲.M

你也可以(在viewDidLoad中IE)的某個位置添加一個觀察者的可達性:

Reachability *reachabilityInfo; 
[[NSNotificationCenter defaultCenter] addObserver:self 
            selector:@selector(myReachabilityDidChangedMethod) 
             name:kReachabilityChangedNotification 
             object:reachabilityInfo]; 
4

我相信你正在使用可達性類進行網絡狀態檢測。所以,你可以在網絡狀態變化的檢測與此代碼段

註冊[:自我選擇:@選擇(reachabilityHasChanged :)名稱:kReachabilityChangedNotification對象:[NSNotificationCenter defaultCenter]的addObserver零]。

現在,您可以撥打startNotifier你可達對象

[self.internetReachability startNotifier]

和方法內reachabilityHasChanged可以捕捉到狀態變化對所有3種狀態即ReachableViaWiFiReachableViaWWANNotReachable。現在從不可訪問的情況下,您可以禁用按鈕,如:

myButton.enabled = NO;

並且從可訪問狀態您可以再次啓用它。

相關問題