0

我正在尝试完成一些非常简单的事情。当我的集合视图中的唯一项目被推送时,我试图以编程方式推送到 viewController。什么都没发生。我相信在我纠结的一团糟中存在不止一个问题。我对数组基础知识的理解显然不是。如果我在下面的 if 语句中放入 NSLog 行,则在推送我的唯一项目时我什么也得不到。这是我的 didSelectItemAtIndexPath 方法:

NSMutableArray *itemApp = [model.viewControllers objectAtIndex:indexPath.row];

if (itemApp == 0) {
    NSLog (@"This does not appear")
    TableViewController *ctc = [[TableViewController alloc] initWithStyle:UITableViewStylePlain];
    [self.navigationController pushViewController:ctc animated:YES];
}

模型在 viewDidLoad 中定义:

    model = [[SimpleModel alloc] init];

.m 实现中提到了 SimpleModel:

@implementation smileController;

{
SimpleModel *model;
}    

viewControllers 是 SimpleModel 类及其朋友应用程序的属性:

@property (nonatomic, strong) NSMutableArray *apps;
@property (nonatomic, strong) NSMutableArray *viewControllers;

这是 SimpleModel.m

 - (id)init
{
if (self = [super init])
{

    self.apps = [NSMutableArray arrayWithObjects:@"1", nil];

    self.viewControllers = [NSMutableArray arrayWithCapacity:self.apps.count];

    TableViewController *tvc = [[TableViewController alloc] init];

    [self.viewControllers addObject:tvc];
}
return self;
}
4

1 回答 1

2

SimpleModel.mviewControllers使用单个TableViewController.

鉴于此,当您发布的第一个代码块应该更像这样:

TableViewController *itemApp = [model.viewControllers objectAtIndex:indexPath.row];

if (itemApp) {
    NSLog (@"This should appear")
    [self.navigationController pushViewController:itemApp animated:YES];
}

这假设您要推送从model.viewControllers属性获得的视图控制器。

请注意,itemApp只能是nilifmodelmodel.viewControllersare nil

于 2013-03-19T20:46:38.357 回答