Как я создаю UIViewController программно?

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

20
задан Alex Reynolds 22 April 2010 в 07:17
поделиться

2 ответа

UIViewController *controller = [[UIViewController alloc] init];
controller.view = whateverViewYouHave;

У вас есть свой собственный контроллер представления, который вы закодировали? В этом случае вам, вероятно, не нужно устанавливать свойство view, поскольку оно уже установлено в IB, если вы использовали именно его. Когда у вас есть свой контроллер, вы можете поместить его в navigationController или просматривать его модально и т.д.

22
ответ дан 30 November 2019 в 00:55
поделиться

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

3
ответ дан 30 November 2019 в 00:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: