Storyboard/XIB 已連接 @IBOutlet UIImageView *alertImage,但執行 alertImage.hidden = YES 圖片仍顯示,完全不受控制。
alertImage = [[UIImageView alloc] init]; // 重新實例化,斷開 IB 連結
alertImage.hidden = YES;
IBOutlet 連結的 View 是由 Nib 載入時實例化的。若在程式碼中再次 alloc/init,指標指向新物件,原本 IB 連結的 View 失去參考,介面上顯示的仍是舊物件。
// 直接操作 IB 連結的實例,不要重新建立
alertImage.hidden = YES;
// 或
alertImage.alpha = 0;
// 或移除
[alertImage removeFromSuperview];
viewDidLoad 印出 NSLog(@"%@", alertImage); 確認非 nil@IBOutlet weak (Swift) 或 @property (weak) (OC),確認 View 未被過早釋放記住:IBOutlet 連結的 View 已經存在,直接用屬性存取即可,切勿再次初始化。