iOS監聽系統側滑返回事件

這個問題困擾了很久,也沒百度出來有用的東西,現在不能再因爲懶惰而拖下去了,所以就自己到UIViewController的頭文件中一個一個方法看,看到有用的就拿過來試一下,最後還真的找到了兩個方法。

 - (void)willMoveToParentViewController:(UIViewController*)parent
 - (void)didMoveToParentViewController:(UIViewController*)parent
  //這兩個方法是系統寫的類別UIContainerViewControllerCallbacks中的方法。

只需要在當前使用的控制器中重寫這兩個方法就可以了,第一次push進來的時候兩個方法都會調用,parent的值不爲空。當開始使用系統側滑的時候,會先調用willMove,而parent的值爲空;當滑動結束後返回了上個頁面,則會調用didMove,parent的值也爲空,如果滑動結束沒有返回上個頁面,也就是輕輕劃了一下還在當前頁面,那麼則不會調用didMove方法。
所以如果想要在側滑返回後在上個頁面做一些操作的話,可以在didMove方法中根據parent的值來判斷。

- (void)willMoveToParentViewController:(UIViewController*)parent{
        [superwillMoveToParentViewController:parent];
        NSLog(@"%s,%@",__FUNCTION__,parent);
}
- (void)didMoveToParentViewController:(UIViewController*)parent{
          [superdidMoveToParentViewController:parent];
          NSLog(@"%s,%@",__FUNCTION__,parent);
          if(!parent){
              NSLog(@"頁面pop成功了");
          }
 }

http://www.jianshu.com/p/b7331546a18b

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章