描述
多個相同控制器的情況出現(xiàn)在頁面相同只是接口參數(shù)不同造成數(shù)據(jù)不同,多出現(xiàn)在繼承關(guān)系.
控制器(被繼承的那個)里有 一段接收通知的代碼 放在 viewdidload 里.
多個控制器繼承上面的控制器,并且這多個控制器同時存在.
問題就是:這個被集成的控制器每次收到通知會執(zhí)行多次對應(yīng)方法
.....分割線.....
案例
00000.gif
點擊支付的的時候,因為
全部
和待付款
都有去支付按鈕
從 footer 中發(fā)送的通知,這兩個頁面都會接收到通知,會跳轉(zhuǎn)兩次
....分割線.....
解決
判斷當前控制器的 view 是否有跟 window 重合,來確定是否執(zhí)行此次方法
....分割線....
代碼
CGRect windowRect = [UIApplication sharedApplication].keyWindow.bounds;
CGRect myViewRect = [self.view convertRect:self.view.bounds toView:nil];
BOOL overlap = CGRectIntersectsRect(windowRect, myViewRect);
if (overlap) {
// NSLog(@"======chongdie ====重疊執(zhí)行====");
}