From c8f9912ebf665eb291ccc43df5bba340d848ad47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?arvinytan=28=E8=B0=AD=E5=AE=87=29?= Date: Sat, 10 Sep 2016 11:35:26 +0800 Subject: [PATCH] =?UTF-8?q?//=20Fix=20bug:=20=E5=BD=93=E4=BD=BF=E7=94=A8sw?= =?UTF-8?q?ipe=20to=20pop=20getsture=E8=BF=94=E5=9B=9EUINavigationControll?= =?UTF-8?q?er=E7=9A=84=E5=89=8D=E4=B8=80=E4=B8=AAUIViewController=E7=9A=84?= =?UTF-8?q?=E8=BF=87=E7=A8=8B=E4=B8=AD=E5=8F=96=E6=B6=88=EF=BC=8C=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E4=B8=A4=E4=B8=AAviewController=E7=9A=84viewOption?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E8=87=B4=EF=BC=8C=E5=88=99=E4=BC=9A=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=95=8C=E9=9D=A2=E6=98=BE=E7=A4=BA=E4=B8=8D=E6=98=AF?= =?UTF-8?q?=E5=BD=93=E5=89=8DviewController=E7=9A=84viewOption=E6=89=80?= =?UTF-8?q?=E6=9C=9F=E6=9C=9B=E7=9A=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Classes/UIViewController/GDDViewControllerHelper.m | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/GDDataDrivenView/Classes/UIViewController/GDDViewControllerHelper.m b/GDDataDrivenView/Classes/UIViewController/GDDViewControllerHelper.m index 584086e..c4a2c64 100644 --- a/GDDataDrivenView/Classes/UIViewController/GDDViewControllerHelper.m +++ b/GDDataDrivenView/Classes/UIViewController/GDDViewControllerHelper.m @@ -232,6 +232,13 @@ + (BOOL)isSameInstanceOrKindOfClass:(id)controllerOrClass in:(UIViewController * } + (void)aspect_hookSelector { + // Fix bug: 当使用swipe to pop getsture返回UINavigationController的前一个UIViewController的过程中取消, + // 如果两个viewController的viewOption不一致,则会导致界面显示不是当前viewController的viewOption所期望的。 + [UIViewController aspect_hookSelector:@selector(viewWillAppear:) withOptions:AspectPositionAfter usingBlock:^(id aspectInfo) { + UIViewController *viewController = [aspectInfo instance]; + [GDDViewControllerHelper config:viewController viewOptions:viewController.viewOption]; + } error:nil]; + [UIViewController aspect_hookSelector:@selector(shouldAutorotate) withOptions:AspectPositionInstead usingBlock:^(id info) { NSInvocation *invocation = info.originalInvocation; UIViewController *instance = info.instance;