我的应用程序有自定义Segue。该应用程序左侧有一个标签栏,上面有五个按钮。主视图TDViewController有一个UIViewController(UIViewController * currentViewController)和一个UIView(View *占位符)。我使用下面的代码为我的自定义segue。
@implementation TDCustomTabBarSegue
- (void) perform {
TDViewController *vc = (TDViewController *)self.sourceViewController;
UIViewController *dstVC = (UIViewController *) self.destinationViewController;
for(UIView *view in vc.placeholder.subviews){
[view removeFromSuperview];
}
vc.currentViewController = dstVC;
[vc.placeholder addSubview:dstVC.view];
}
一切顺利,直到我尝试点击当前占位符视图中的按钮。我得到错误[MyViewController performSelector:withObject:withObject:]:消息发送到解除分配的实例0x7562e70
我认为我的视图控制器没有被保留,但不知道如何解决我的问题。
修改 - 其他信息
TDTViewController.m
...
- (IBAction)modeButtonClicked:(id)sender; //hooked up to storyboard
TDTViewController.m
...
- (IBAction)modeButtonClicked:(id)sender {
//hooked up to storyboard
}
此问题并非我的UIButton独有。与我的占位符视图中的任何控件进行交互都会使应用程序崩溃并发生相同的解除分配的实例错误。
剖析器在TDTViewController上给了我一个僵尸。事件类型= Malloc,RefCt = 1,负责调用者= - [UIClassSwapper initWithCoder:]
答案 0 :(得分:0)
您是否添加了按钮必须执行的按钮的方法
类似
[aButton addTarget:self action:@selector(btnSubImageClicked:) forControlEvents:UIControlEventTouchUpInside];