iOS開發(fā) 導航欄出現(xiàn)多次push同一個頁面問題解決辦法

在點擊push下一個頁面時,因為各種原因,點一下cell或按鈕沒有響應,用戶可能就多點幾下,這時候會打開好幾個一樣的頁面。

這是因為push后的頁面有耗時操作或者剛好push到另一個頁面時,另一個頁面正好在reloadData卡住主線程。造成點擊cell時卡住了。

這時,我們可以通過重寫導航控制器的方法來解決這個問題。

>>>>>>>>>>>>>>>>>>?

#import <UIKit/UIKit.h>

@interfaceNaviViewController?:?UINavigationController

@end

>>>>>>>>>>>>>>>>>>>

#import "NaviViewController.h"

@interfaceNaviViewController?()

//?記錄push標志

@property(nonatomic,getter=isPushing)BOOLpushing;

@end

@implementationNaviViewController

-?(void)viewDidLoad?{

? ? ? ? ? [superviewDidLoad];

? ? ? ? ? ?self.delegate=self;

}

-?(void)pushViewController:(UIViewController*)viewControlleranimated:(BOOL)animated?{

? ? ? ? if(self.pushing==YES)?{

? ? ? ? ? ? ? ? ?NSLog(@"被攔截");

? ? ? ? ? ? ? ? ?return;

? ? ? ? }else{

? ? ? ? ? ? ? ? ?NSLog(@"push");

? ? ? ? ? ? ? ? ?self.pushing=YES;

? ? ? ? }

[superpushViewController:viewControlleranimated:animated];

}

#pragma?mark?-?UINavigationControllerDelegate

-(void)navigationController:(UINavigationController*)navigationControllerdidShowViewController:(UIViewController*)viewControlleranimated:(BOOL)animated?{

? ? ? ? ? ? ?self.pushing=NO;

}

@end

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容