将PlaceHolder视图替换为其他ViewControllers导致线程1:EXC_BAD_ACCESS代码1

时间:2015-02-03 15:04:36

标签: objective-c uiview uiviewcontroller exc-bad-access uistoryboardsegue

嘿,伙计们创建了一个自定义的segue标签栏,使用这个教程,

http://www.scott-sherwood.com/tutorial/ios-5-creating-a-custom-side-tabbar-using-storyboards-and-custom-segues/

在试图找出为什么我的应用程序无法正常工作之后,我意识到我使用的技术是用链接的ViewController替换现有视图作为子视图。

//////////////////////////////////////////覆盖的表演方法如下/////////////////////////

-(void) perform  {

    ViewController *src = (ViewController *)[self sourceViewController];
    UIViewController *dst = (UIViewController *) self.destinationViewController;

    for (UIView *view in src.placeholderView.subviews ) {
        [view removeFromSuperview];
    }


    src.currentViewController = dst;
    [src.placeholderView addSubview:dst.view]; }

////////////////////////////////////////////// / ////////////////////// /////////////////////// ///// //////////////////

现在,当我在链接的ViewControllers上时,我希望添加另一个链接到另一个ViewController,它将保存每个相应的前一个ViewControllers的信息的编辑功能。现在,当我尝试通过任何Segue连接ViewControllers时,应用程序崩溃并给我一个线程1:EXC_BAD_ACCESS。当我使用NSZombie时,它会在控制台中给我这个,

[UIStoryboardSegueTemplate performSelector:withObject:withObject:]:消息发送到解除分配的实例0x7c3a4d20

不,我理解理论上发生了什么,viewController试图将下一个广告添加到空白区域(我认为整个placeHolder已被删除,因此无法使用viewController)我想,我想知道是否有人可以帮助我这意味着我一直在寻找解决方案,但我一直得到同样的错误。

我甚至为ProfileViewController.m / ProfileViewController.h创建了一个VieController类,其中我添加了

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([[segue identifier] isEqualToString:@"ProfileEditSegue"]){
        ProfileViewController *cvc = (ProfileViewController *)[segue destinationViewController];


        [cvc.placeholderView addSubview:cvc.view];
    }
}

这导致我犯同样的错误。我很乐意向任何人发送我的源文件,当我在教程中提供的文件上执行此操作时会发生同样的错误。

PS。我正在使用这种方法,以便我可以有一个垂直导航栏,但我想这样做,所以我也可以学习如何工作,并能够进一步使用/开发它。

任何帮助都会很棒

1 个答案:

答案 0 :(得分:0)

问题不在于那些方法,因为currentViewController实例设置为弱而不是强