Problem is in your prepareForSegue:
method.
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
UINavigationController *destViewController = (UINavigationController*)segue.destinationViewController;
destViewController.title = [[_menuItems objectAtIndex:indexPath.row] capitalizedString];
For example selected index path is 1.2 => your code is calling [_menuItems objectAtIndex:2]
that raises the error.
Actual solution depends on what you want to do. If you want to perform the seague only when tapping on cell from first section you should change your didSelectRowAtIndexPath:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section == 0)
[self performSegueWithIdentifier:@"Test" sender:nil];
}
Otherwise you should change the destViewController.title = ...
accordingly.
A tip that might want to help you find this kind of errors would be to set the breakpoints on exceptions.