didSelectRowAtIndexPath中的EXC_BAD_ACCESS错误

时间:2014-07-25 10:24:52

标签: ios objective-c xcode exc-bad-access didselectrowatindexpath

这是我在这里发表的第一篇文章,在通过阅读所有优秀答案获得帮助后,我终于遇到了一个我无法解决的问题。我是新人,所以请原谅我在我的代码中的缺乏或实力。

我有一个分割视图控制器,它运行一个带有两个Table视图控制器的标签栏。一切正常。每个单元格都是一个菜单项,我想在splitViewController的详细视图中加载一个新的导航控制器。

我已经通过将以下代码添加到位于我的uiTableViews类中的didSelectRowAtIndexPath方法来完成此操作。我还创建了一个调用方法来简化我称之为SplitViewChange的过程。

它在我的第一个细胞选择上工作正常,有时候不止一次,但更常见的是它在第二次细胞选择上发生炸弹,错误为EXC_BAD_ACCESS

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
    AdminData *_adminData = self.adminNav[indexPath.row];
NSString *newVcController = _adminData.vcName;

//get a referce to the splitviewcontroller
//UISplitViewController *splitViewController = self.splitViewController;
UISplitViewController  *splitViewController = self.splitViewController;
//ref the cuttent navigation controller in the rootvuew
UINavigationController *currentNavigation = [self.splitViewController.viewControllers objectAtIndex:0];
//run the method to put the viewcontrollers into a single array
NSArray *viewControllers = [SplitViewChange setVcName:newVcController setCurrentNavigation:currentNavigation];

splitViewController.viewControllers = viewControllers;
}

然后这是我班级的代码及其方法 -

@implementation SplitViewChange

+(NSArray *)setVcName:(NSString *)vcName setCurrentNavigation:(UINavigationController *)currentNavigation
{
 //get a ref to the main storyboard to referece the navigation controllers
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];

//get a ref to the new detail view controller
UINavigationController *newDetailView = (UINavigationController *)[mainStoryboard instantiateViewControllerWithIdentifier:vcName];

NSArray *controllerArray = [NSArray arrayWithObjects:currentNavigation, newDetailView, nil];

return controllerArray;
}

@end

任何帮助完成这项工作都会受到欢迎。

我在这一行得到错误

splitViewController.viewControllers = viewControllers;

0 个答案:

没有答案