ios 頁面跳轉問題

程序啟動后從a ->b ->c
在c頁面要求點擊某按鈕直接跳到a
使用方法:

[self.navigationController popToViewController [self.navigationController.viewControllers objectAtIndex:n] animated:NO];

n為頁面的push順序

跳轉失敗

提示:Unbalanced calls to begin/end appearance transitions for xxViewController

原因:同一時間進行多次跳轉
比如,掃碼場景,在a頁面點擊按鈕進行掃碼,通常掃碼完成后要返回a頁面,掃碼后通常會調用某代理方法來返回掃碼結果,在獲取掃碼結果后跳轉到b頁面。
那么這行起來時,如果你想在獲取結果后立刻跳轉到b頁面你會發現出現跳轉失敗。

解決方法

已掃碼場景的例子來說,我們默認的跳轉順序是先返回到a再跳轉到b,所以在返回到a頁面的語句作修改。

[self.navigationController popToRootViewControllerAnimated:NO];

參考:參考1

頁面跳轉方向

    //設置動畫,使跳轉方向為從左側進來
    //CATransition 對象創建
    CATransition *transition = [CATransition animation];
    
    ///時間間隔  1.0f最慢   0.1f最快
    transition.duration = 0.5f;
    
    ///動畫的開始與結束的快慢
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    //上一行也可以寫為 transition.timingFunction = UIViewAnimationCureEasyInOut;
    
    ///設置動畫效果
    transition.type = kCATransitionReveal ;
    /*     type的其他類型:
     kCATransitionFade       交叉淡化過渡
     kCATransitionMoveIn    新視圖移到舊視圖上面
     kCATransitionPush        新視圖把舊視圖推出去
     kCATransitionReveal    將舊視圖移開,顯示下面的新視圖
     */
    
    ///設置動畫方向
    transition.subtype = kCATransitionFromLeft;
    /*   subtype的其他類型
     kCATransitionFromRight; 從右面進來
     kCATransitionFromLeft; 從左面進來
     kCATransitionFromTop; 從上面進來
     kCATransitionFromBottom; 從下面進來
     */
    
    ///在想添加CA動畫的VIEW的層上添加此代碼 addAnimation: forKey:
    [self.navigationController.view.layer addAnimation:transition forKey:@"transition"];
    
    //注意:將這些代碼加在 navigationController 的 pushViewController:animated: 方法之前,并且加入該代碼后要將pushViewController:animated:方法的animated 參數傳NO
    PSCourierInfoViewController *vc = [[PSCourierInfoViewController alloc] init];
    [self.navigationController pushViewController:vc animated:NO];

親測可用。。。。。
如有問題可留言交流!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • { 11、核心動畫 需要簽協議,但是系統幫簽好 一、CABasicAnimation 1、創建基礎動畫對象 CAB...
    CYC666閱讀 1,591評論 2 4
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,556評論 25 708
  • 1.badgeVaule氣泡提示 2.git終端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夾內容...
    i得深刻方得S閱讀 4,770評論 1 9
  • 三年去拼兩天 兩天去贏四年 時間 省略了太多可能性 哪是兩天注定的。
    倩何人換取閱讀 90評論 0 0
  • 城墻坍塌著爬上時光的滄桑 夢魘中追溯歷史的輝煌 晨鐘暮鼓多年不再敲響 千百年間走來的古堡 血脈里流淌著遙遠的絕唱 ...
    竹林野客閱讀 244評論 0 3