Я пытаюсь выполнить что-то невероятно простое. Я пытаюсь программным образом нажать на viewController, когда только объект в моем представлении коллекции нажат. Ничего не произошло. Я считаю, что в моем запутанном беспорядке есть несколько проблем. Мое понимание основ массивов явно не что иное. Если я поставлю строку NSLog внутри моего оператора if, я ничего не получаю при нажатии на мой одиночный элемент. Вот мой метод didSelectItemAtIndexPath:didSelectItemAtIndexPath pushViewController
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];
SimpleModel упоминается в реализации .m:
@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;
}
Почему вы ожидаете, что ItemApp равняется 0? Это должно быть tvc, не так ли? – rdelmar
Наличие 'if (itemApp == 0)' совпадает с 'if (itemApp == nil)'. Поскольку ваш массив 'model.viewControllers' не может иметь значений' nil', переменная 'itemApp' может быть только' nil', если 'self.viewController' также' nil'. Учитывая имя 'self.viewControllers', не получило бы определенное значение, возвращающее объект' UIViewController', а не другой 'NSMutableArray'? – rmaddy