獲取頂層的UIViewController遇到的坑:
之前做項(xiàng)目更新購(gòu)物車的badge時(shí)姑蓝,本意是獲取TabbarController鹅心,然后設(shè)置badge,但是出現(xiàn)了崩潰纺荧。原因是獲取到rootViewController時(shí)旭愧,不是TabbarController颅筋,而是UIApplicationRotationFollowingController,然后調(diào)用更新badge的時(shí)候出現(xiàn)了@selector崩潰输枯。觀察發(fā)現(xiàn)是因?yàn)楂@取root時(shí)出現(xiàn)了AlertView议泵,然后導(dǎo)致了keyWindow的rootViewController發(fā)生了變化。自己猜測(cè)是因?yàn)锳lertView變成了UIAlertController桃熄。
解決方案:app啟動(dòng)之后在didFinishLaunchingWithOptions里直接獲取到rootController然后放到單例里先口,用的時(shí)候直接取就可以。