你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> iOS開發小貼士—APP界面跳轉卡死問題

iOS開發小貼士—APP界面跳轉卡死問題

編輯:IOS開發基礎

本人項目中出現偶發性的從A頁面跳轉B頁面卡死問題。並不是crash,斷點顯示跳轉代碼已經運行,只是界面卡主,返回主界面再返回程序,跳轉完成。

分析發生原因

1、界面某控件內存未釋放,導致的內存的溢出(可能性不大,ARC且界面並不復雜)

2、手勢沖突(可能性較大)

3、是否跟Tabbar和Navigation有關

解決方案

經過上網查找方案,以及自己分析代碼。最終判斷是手勢沖突問題(此情況主要發生在一級頁面與二級頁面之間且基VC右劃返回手勢也可以響應,因為沒有上一級頁面,導致整個程序頁面不響應)

向一級頁面添加如下代碼即可:

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    [self forbiddenSideBack];
}
- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    [self resetSideBack];
}
#pragma mark -- 禁用邊緣返回
-(void)forbiddenSideBack{
    self.isCanBack = NO;
     //關閉ios右滑返回
    if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.delegate=self;
    }
}
#pragma mark --恢復邊緣返回
- (void)resetSideBack {
    self.isCanBack=YES;
    //開啟ios右滑返回
    if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.delegate = nil;
    }
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer {
    return self.isCanBack;
}


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved