這個問題困擾了很久惯吕,也沒百度出來有用的東西细诸,現(xiàn)在不能再因為懶惰而拖下去了沛贪,所以就自己到UIViewController
的頭文件中一個一個方法看,看到有用的就拿過來試一下震贵,最后還真的找到了兩個方法利赋。
// 這兩個方法是系統(tǒng)寫的類別UIContainerViewControllerCallbacks中的方法。
- (void)willMoveToParentViewController:(UIViewController*)parent
- (void)didMoveToParentViewController:(UIViewController*)parent
只需要在當(dāng)前使用的控制器中重寫這兩個方法就可以了猩系,第一次push
進(jìn)來的時候兩個方法都會調(diào)用媚送,parent
的值不為空。當(dāng)開始使用系統(tǒng)側(cè)滑的時候寇甸,會先調(diào)用willMove
塘偎,而parent
的值為空;當(dāng)滑動結(jié)束后返回了上個頁面幽纷,則會調(diào)用didMove
式塌,parent
的值也為空,如果滑動結(jié)束沒有返回上個頁面友浸,也就是輕輕劃了一下還在當(dāng)前頁面峰尝,那么則不會調(diào)用didMove
方法。
所以如果想要在側(cè)滑返回后在上個頁面做一些操作的話收恢,可以在didMove
方法中根據(jù)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成功了");
}
}