我用一个简单的控制器和iPad视图以编程方式创建了Storyboard(因为我只用它用于iOS 5)。我需要一个手势识别器并补充说明。但是,当应用程序加载时,我让gustier我得到EXC_BAD_ACCESS:带手势识别器和故事板的EXC_BAD_ACCESS
*** - [DOiPadStoryboardViewController handleSliding:]:消息发送到释放实例0x238580
它必须是简单的东西我做的错误。为什么控制器解除分配?
创建故事板用下面的代码:
if (isIOS5) {
// iOS 5 with storyboard
UIViewController *viewControler = nil;
if([self isiPad]){
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iPadStoryboard" bundle: [NSBundle mainBundle]];
viewControler = [storyboard instantiateInitialViewController];
} else {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iPhoneStoryboard" bundle: [NSBundle mainBundle]];
viewControler = [storyboard instantiateInitialViewController];
}
[self.window addSubview:viewControler.view];
}
手势识别器被连接到主视图和IBAction为是在视图控制器。其实,故事情节如下所示(但不知道这是否添加任何东西):
,这是泛手势识别器:
,最后是“BT”控制台输出:
#0 0x37d2b8a0 in ___forwarding___()
#1 0x37c86680 in __forwarding_prep_0___()
#2 0x318d2f06 in _UIGestureRecognizerSendActions()
#3 0x31864c1c in -[UIGestureRecognizer _updateGestureWithEvent:]()
#4 0x31a90508 in ___UIGestureRecognizerUpdate_block_invoke_0541()
#5 0x317dfd68 in _UIGestureRecognizerApplyBlocksToArray()
#6 0x317de8b6 in _UIGestureRecognizerUpdate()
#7 0x317eb3cc in _UIGestureRecognizerUpdateGesturesFromSendEvent()
#8 0x317eb20e in -[UIWindow _sendGesturesForEvent:]()
#9 0x317eaddc in -[UIWindow sendEvent:]()
#10 0x317d14ec in -[UIApplication sendEvent:]()
#11 0x317d0d2c in _UIApplicationHandleEvent()
#12 0x37a57df2 in PurpleEventCallback()
#13 0x37cfd552 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__()
#14 0x37cfd4f4 in __CFRunLoopDoSource1()
#15 0x37cfc342 in __CFRunLoopRun()
#16 0x37c7f4dc in CFRunLoopRunSpecific()
#17 0x37c7f3a4 in CFRunLoopRunInMode()
#18 0x37a56fcc in GSEventRunModal()
#19 0x317ff742 in UIApplicationMain()
#20 0x00003050 in main (argc=1, argv=0x2fdffaa8)
谢谢,这工作! –
我很抱歉你能再解释一次吗?我不太明白你的意思...... –
@ChrisBraunschweiler查看苹果的'UIWindow'类参考文档。寻找'rootViewController'属性。 – Danra