现象:
crash信息
-[UIApplicationRotationFollowingController tabBar]: unrecognized selector sent to instance 0x13136f380
分析:
为什么出现UIApplicationRotationFollowingController?
答:因为UIActionSheet是在新建的window上展示的,所以keyWindow已经改变了,无法通过[UIApplication sharedApplication].keyWindow获取rootViewController。
解决:
1、首先,获取rootViewController方式应该为:
UITabBarController *tab = (UITabBarController *)[UIApplication sharedApplication].delegate.window.rootViewController;
2、判断类型是否正确:
if (tab && [tab isKindOfClass:[UITabBarController class]]) {
[tab.tabBar showBadgeOnItemIndex:1];
}