web-dev-qa-db-fra.com

Comment créer un UIViewController par programme?

Je travaille dans une application où j'ai des données dans UITableView. C'est comme une application d'exploration. L'utilisateur cliquera sur une ligne et passera à la page suivante indiquant plus d'enregistrements dans un UITableView. Mais le problème dans mon cas est que je ne sais pas jusqu'à quel point l'utilisateur de niveau peut percer. Le nombre de niveaux n'est pas corrigé. Alors maintenant, je pense créer et ajouter les fichiers de vue programmatismatiquement. Est-il possible?? Si oui comment? Merci d'avance.

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

Avez-vous votre propre contrôleur d'affichage que vous avez codé? Dans ce cas, vous n'avez probablement pas besoin de définir la propriété Affichage car il a été défini dans IB si c'est ce que vous avez utilisé. Lorsque vous avez votre contrôleur, vous pouvez le repousser sur la carte de navigation ou la visualiser de manière moderne.

22

UIViewControllers sont toujours créés par programmation. Il semble que vous ayez juste besoin d'avoir la même classe pour chaque niveau de contrôleur de visualisation, par exemple:

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

Dans ce cas, thingies serait une sorte de Nsarray récursif (c'est-à-dire une gamme de tableaux).

3
shosti