簡體   English   中英

在iOS中加載某些活動時,如何禁用導航欄的后退按鈕?

[英]How to disable navigation bar back button when some activity is loading in iOS?

我有兩個ViewController。

在第二個視圖控制器中,當我單擊搜索按鈕動作時(活動開始,例如Web服務正在執行)。從Web服務獲取數據后,它將顯示UIAlertview。

我的問題是,當我按下搜索按鈕(活動開始)時,現在我單擊了導航欄上的后退按鈕。 現在,我在上一個視圖(第一個視圖控制器)上。 我現在有了UIAlertview的搜索按鈕活動的響應。

顯然,我的應用程序將在警報視圖的“確定”按鈕上崩潰。

所以,在那種情況下

如何禁用導航欄后退按鈕? (當我點擊搜索時)

要么

單擊后退按鈕時如何防止UIAlerview顯示?

更新:

我嘗試了所有方法來隱藏后退按鈕。 :-)

僅隱藏按鈕或禁用用戶交互不是最佳實踐,因為用戶將不知道應用程序正在發生什么,如果過程較長,則用戶會認為該應用程序已被凍結並終止。 在這些情況下,良好做法是HUD(進度指示器),它會阻止用戶交互。 在這種情況下,用戶將看到背景中正在發生某些事情,並將等待其完成,如果他不厭其煩,HUD不會允許他。 我通常使用以下代碼: https : //github.com/jdg/MBProgressHUD ,實現非常簡單,看起來也很不錯,但是您始終可以自己編寫一個。

將您的UIAlertView的引用另存為屬性

@property (strong, nonatomic) UIAlertView *alert;

顯示警報

  self.alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"message" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles: nil];
    [self.alert show];

如果出現“風險”,請刪除代表

self.alert.delegate = nil;

風險結束后,重置代表

self.alert.delegate = self;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM