Как мне создать UIViewController программно? - PullRequest
20 голосов
/ 22 апреля 2010

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

Ответы [ 2 ]

22 голосов
/ 22 апреля 2010
UIViewController *controller = [[UIViewController alloc] init];
controller.view = whateverViewYouHave;

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

3 голосов
/ 22 апреля 2010

UIViewController с всегда создаются программно. Похоже, вам просто нужно иметь один и тот же класс для каждого уровня контроллера представления, например ::10000

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...