Подтвердить что ты не робот

Как я могу создать UIViewController программно?

Я работаю в приложении, где у меня есть данные в UITableView. Это похоже на приложение для сверления. Пользователь щелкнет по строке и перейдет на следующую страницу, показывая больше записей в UITableView. Но проблема в моем случае заключается в том, что я не знаю, сколько уровней пользователь может выполнить. Количество уровней не фиксировано. Так что теперь я собираюсь создать и добавить программные средства просмотра программным способом. Является ли это возможным?? если да, то как?   спасибо заранее.

4b9b3361

Ответ 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 (т.е. массивом массивов).