Ios (Swift)将视图移到键盘以外的位置?

Ios (Swift)将视图移到键盘以外的位置?,ios,swift,debugging,keyboard,Ios,Swift,Debugging,Keyboard,我在移动视图为输入的键盘腾出空间时遇到了一个奇怪的问题。基本上,在我的应用程序中,有一个按钮执行一个segue,它推送一个视图控制器的新实例,该视图控制器以模块方式嵌入到导航控制器中。在第一个实例中,我的键盘代码工作得非常好。代码如下: func keyboardWillShow(sender: NSNotification) { if !keyBoard { self.view.frame.origin.y -= 200 } keyBoard = tru

我在移动视图为输入的键盘腾出空间时遇到了一个奇怪的问题。基本上,在我的应用程序中,有一个按钮执行一个segue,它推送一个视图控制器的新实例,该视图控制器以模块方式嵌入到导航控制器中。在第一个实例中,我的键盘代码工作得非常好。代码如下:

func keyboardWillShow(sender: NSNotification) {
    if !keyBoard {
        self.view.frame.origin.y -= 200
    }
    keyBoard = true
}

func keyboardWillHide(sender: NSNotification) {
    if keyBoard {
        self.view.frame.origin.y += 200
    }
    keyBoard = false
}
在viewDidLoad中具有以下内容:

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name: UIKeyboardWillHideNotification, object: nil)
我还添加了TapGestureRecognitor,这样当键盘显示时,用户点击屏幕上的任意位置时,键盘就会关闭:

let tapped = UITapGestureRecognizer(target: self, action: "closeKeyboard")
tapped.numberOfTapsRequired = 1
self.view.addGestureRecognizer(tapped)


因此,在第一个实例中,这段代码工作得非常完美。但是,当我返回并调用self.dismissViewControllerAnimated后,当我进入原始屏幕时,再次单击调用performsgue的按钮并按下同一视图控制器的新实例,代码中断,视图不再移动到键盘之外,而是有点结巴和反弹。我不知道为什么会发生这种情况,任何帮助都将不胜感激。谢谢

尝试在
键盘上放置断点将显示
键盘将隐藏
,并告诉我在返回第二个ViewController时是否调用了这两种方法。

尝试在
键盘上放置断点将显示
键盘将隐藏
,返回第二个ViewController时,告诉我是否调用了这两个方法。

是,调用了这些方法。它们似乎以同样的方式停止工作是的,调用了这些方法。他们似乎停止以同样的方式工作
func closeKeyboard() {
    self.view.endEditing(true)
}