Я работаю в приложении, где у меня есть данные в UITableView
. Это похоже на приложение развертки. Пользователь нажмет на строку и перейдет к следующей странице, показывающей больше записей в a UITableView
. Но проблема в моем случае состоит в том, что я не знаю до того, сколько может развернуть пользователь уровня. Количество уровней не фиксируется. Таким образом, теперь я думаю, чтобы создать и добавить viewcontrollers программно. Действительно ли это возможно?? если да, как?заранее спасибо.
UIViewController *controller = [[UIViewController alloc] init];
controller.view = whateverViewYouHave;
У вас есть свой собственный контроллер представления, который вы закодировали? В этом случае вам, вероятно, не нужно устанавливать свойство view, поскольку оно уже установлено в IB, если вы использовали именно его. Когда у вас есть свой контроллер, вы можете поместить его в navigationController или просматривать его модально и т.д.
UIViewController
всегда создаются программно. Похоже, что вам просто нужно иметь один и тот же класс для каждого уровня контроллера представления, например:
//CoolViewController:UITableViewController
//CoolViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (!self.isAtTopLevel) {
CoolViewController *cvc = [[CoolViewController alloc] initWithRecord:[self.records objectAtIndex:indexPath.row]];
[self.navigationController pushViewController:cvc animated:YES];
[cvc release];
} else {
//do something else
}
}
В этом случае thingies
будет чем-то вроде рекурсивного NSArray (т.е. массива массивов).