Я работаю в приложении, где у меня есть данные в UITableView
. Это похоже на приложение для сверления. Пользователь щелкнет по строке и перейдет на следующую страницу, показывая больше записей в UITableView
. Но проблема в моем случае заключается в том, что я не знаю, сколько уровней пользователь может выполнить. Количество уровней не фиксировано. Так что теперь я собираюсь создать и добавить программные средства просмотра программным способом. Является ли это возможным?? если да, то как? спасибо заранее.
Как я могу создать UIViewController программно?
Ответ 1
UIViewController *controller = [[UIViewController alloc] init];
controller.view = whateverViewYouHave;
У вас есть свой собственный контроллер просмотра, который вы закодировали? В этом случае вам, вероятно, не нужно устанавливать свойство view, поскольку оно было установлено в IB, если это то, что вы использовали. Когда у вас есть контроллер, вы можете нажать его на навигационном контроллере или просмотреть его модально и т.д.
Ответ 2
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 (т.е. массивом массивов).