我無法使用以下代碼從超級視圖中刪除? 這是什麼?我嘗試了一切,但似乎它根本不工作。我添加更多的細節,所以我沒有得到這個非常惱人的警報,告訴我,我的帖子主要是代碼....無法從超級視圖中刪除(swift2)
let controller = storyboard!.instantiateViewControllerWithIdentifier("OrderViewController")
controller.view.frame = CGRectMake(self.view.frame.size.width/2 - 100, self.view.frame.size.height/2 - 100, 200, 200)
if sender.selected {
sender.selected = false
controller.view.transform = CGAffineTransformIdentity
[UIView .animateWithDuration(0.2, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
controller.view.transform = CGAffineTransformMakeScale(0.01, 0.01);
}, completion: { finished in
controller.willMoveToParentViewController(nil)
controller.view .removeFromSuperview()
controller.removeFromParentViewController()
})]
print("close")
}
else {
sender.selected = true
addChildViewController(controller)
view.addSubview(controller.view)
controller.didMoveToParentViewController(self)
controller.view.transform = CGAffineTransformMakeScale(0.01, 0.01);
[UIView .animateWithDuration(0.2, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
controller.view.transform = CGAffineTransformIdentity
}, completion: nil)]
print("present")
}
謝謝你。我確實來自obj-c背景,仍然試圖掌握新的語法。只是一個問題,但。爲什麼檢查控制器是否爲零而不是使用所選按鈕然後檢查更好? –
不客氣!使用按鈕選擇對你的邏輯沒有任何問題,但是對我來說,使用控制器的可選狀態(「不存在嗎?make it!」,「已經存在?刪除它!」)對於我來說更自然一些。 。按鈕選擇狀態(「hmm,確定'是指創建還是移除控制器?」)。另外,如果你從Obj-C切換到Swift,你應該花時間閱讀和真正理解可選項,並且你明白像'if let existingController = self.controller'這樣的語句。 – MathewS
謝謝隊友。非常感謝您的意見! –