0

我的应用程序有一个自定义 Segue。该应用程序的左侧有一个标签栏,上面有五个按钮。主视图 TDViewController 有一个 UIViewController (UIViewController * currentViewController) 和一个 UIView (View * placeholder)。我将以下代码用于我的自定义 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:]: message sent to deallocated instance 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:]

4

1 回答 1

0

您是否添加了按钮必须执行的按钮的方法

就像是

[aButton addTarget:self action:@selector(btnSubImageClicked:) forControlEvents:UIControlEventTouchUpInside];
于 2013-07-12T18:46:13.853 回答