web-dev-qa-db-ja.com

プログラムでUIViewControllerを作成するにはどうすればよいですか?

UITableViewにデータがあるアプリで作業しています。これは、ドリルダウンアプリケーションのようなものです。ユーザーは行をクリックして、UITableViewのレコードをさらに表示する次のページに移動します。しかし、私の場合の問題は、何人のレベルのユーザーがドリルできるかがわからないことです。レベルの数は固定されていません。したがって、私はビューコントローラーをプログラムで作成して追加することを考えています。出来ますか??はいの場合はどうですか?前もって感謝します。

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

コーディングした独自のビューコントローラーはありますか?その場合、おそらくIBで設定されているので、viewプロパティを設定する必要はありません。コントローラーがある場合は、それをnavigationControllerにプッシュしたり、モーダルに表示したりできます。

22

UIViewControllersは常にプログラムで作成されます。 View Controllerの各レベルに同じクラスが必要なだけのようです、例えば:

//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
shosti