使用Interface Builder将UIGestureRecognizer放置在选项卡式应用程序的多个视图中

时间:2011-12-07 13:00:39

标签: ios interface-builder uitabbarcontroller xcode4.2 uigesturerecognizer

我创建了一个应用程序,我尝试利用Interface Builder中的新功能(Storyboard,GestureRecognizers等)。我首先选择Tabbed Application模板。然后,我将SwipeGestureRecognizer添加到相应视图控制器中的每个视图。 SwipeGesture连接到一个方法,该方法在每个文本输入上调用resignFirstResponder。

SwipeGesture在第一个视图中按预期工作,但当我尝试按标签切换视图时,应用程序崩溃。我得到的错误是SIGBART或EXC_BAD_ACCESS。如果我从第二个视图中删除GestureRecognizers,第二个视图加载没有任何问题。

如果我选择使用UtilityApplication模板并以与我在Tabbed应用程序模板中相同的方式添加手势识别器,则不会出现此问题。

任何人都可以给我任何关于如何解决这个问题的指示。我担心我无法提供太多代码,因为我添加的唯一代码是UITextField的IBOutlet以及手势发生时调用的方法

- (IBAction) hideKeyBoard:(id)sender{
    [textField resignFirstResponder];
}

This is an image of my setup in Interface Builder. The view called ViewController is working but when I try to load the SettingsViewController the app crashes.

这是我在Interface Builder中设置的图像。名为ViewController的视图正在运行,但是当我尝试加载SettingsViewController时,应用程序崩溃了。

更新: 如果我以编程方式添加手势识别器,则不会发生上述问题。

1 个答案:

答案 0 :(得分:1)

这是一个UIKit错误。

要继续使用Storyboard / Interface Builder,请在IBOutlet中添加一个强大的UIViewController并将其连接到UIGestureRecognizer。像魅力一样工作:)