2010-07-20 11 views
0

Je souhaite poser une question sur l'application iPhone. J'écris un programme qui va afficher une table. Cependant, je ne sais pas pourquoi je ne peux pas afficher le titre de navigation dans le tableau. Ce qui suit est mon codene peut pas afficher le titre de navigation dans le tableau sur l'application iPhone

// Code

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    // control flow, call another user define function and add the items to the table 
    [self flowControl]; 

    //Set the title  
    self.navigationItem.title = @"Table Title Hello"; 

    // can see 
    // NSLog(@"self.navigationItem.title: %@", self.navigationItem.title); 

} 

Le tableau ne peut afficher l'élément, mais pas le titre. Quelqu'un peut-il m'aider?

// ---------- Mise à jour 1 --------------

Le code dans le [auto flowControl] appellera deux fonctions, les deux de la fonction est d'ajouter les éléments, par exemple [displayNameArray addObject:@"John Chan"];

// ---------- Mise à jour 2 --------------- Dans mon programme, le sont 2 contrôleurs de vue.

1) MyViewController

2) SimpleTableView

La première est utilisée pour permettre à l'utilisateur d'entrer des informations, le second est utilisé pour afficher le contenu sous forme de tableau.

Mon nom du projet est USERPROJECT

//The following is the content of the .m 
#import "MyViewController.h" 
#import "USERPROJECT.h" 
#import "SimpleTableView.h" 

@implementation USERPROJECT 

@synthesize window; 
@synthesize myViewController; 


- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    MyViewController *aViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:[NSBundle mainBundle]]; 
    [self setMyViewController:aViewController]; 
    [aViewController release]; 

    UIView *controllersView = [myViewController view]; 
    [window addSubview:controllersView]; 

    // Override point for customization after application launch 
    [window makeKeyAndVisible]; 
} 


- (void)dealloc { 
    [myViewController release]; 
    [window release]; 
    [super dealloc]; 
} 

@end 

Et il est l'un des contenus dans le « MyViewController.m », je l'utiliser pour passer au contrôle de la « MyViewController.m » à « SimpleTableView. m »

- (void) switchPageShowTable { 

    NSLog(@"%d: switchPageShowTable", order); 
    order++; 

    SimpleTableView *simpleTableView = [[SimpleTableView alloc] initWithNibName:nil bundle:nil]; 
    [self presentModalViewController:simpleTableView animated:YES]; 

} 

est-il affecte l'utilisation du « soi » dans le titre d'appel? Merci beaucoup.

Répondre

2

Le titre que vous vous attendez à voir est affiché dans une barre de navigation, qui fait généralement partie de UINavigationController. Pour le faire, vous devez encore faire ce qui suit:

SimpleTableView *simpleTableView = [[SimpleTableView alloc] initWithNibName:nil bundle:nil]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController: simpleTableView]; 
[self presentModalViewController:navController animated:YES]; 
[simpleTableView release]; 
[navController release]; 

Et (un petit pinailler) au lieu de

self.navigationItem.title = @"Table Title Hello"; 

vous pouvez le faire:

self.title = @"Table Title Hello"; 

sauf si vous avez une raison utiliser explicitement le fichier navigationItem.

+0

merci pour votre réponse. J'essaye de mettre le code dans le SimpelTableView.h, mais il reçoit beaucoup d'erreur. Où dois-je mettre le code? – Questions

+0

Le premier bloc de code remplace le code que vous avez dans switchPageShowTable (je suppose que c'est la méthode de MyViewController). Notez que ma version libère le contrôleur de vue modale afin que vous n'ayez pas à le suivre ailleurs. La partie "self.title" est la responsabilité de SimpleTableView et peut aller dans init ... ou viewDidLoad. Par ailleurs, SimpleTableView est nommé un peu confus, je nommerais la classe SimpleTableViewController. – Costique

0

La vue tente-t-elle de charger une sous-classe de UITableViewController?

Et que fait [self flowControl] exactement?

+0

merci pour votre réponse. J'ai édité le poste ci-dessus, voulez-vous jeter un coup d'oeil. De plus, que voulez-vous dire par "Est-ce que la vue essaie de charger une sous-classe de UITableViewController?". Je suis un vert de l'objectif C, voulez-vous m'expliquer? – Questions

+0

Est-ce que l'interface ressemble à ceci? @interface ViewController: UITableViewController {} @end –

+0

merci de votre réponse, et j'ai mis à jour le post ci-dessus, cela vous dérangerait de jeter un oeil. J'ajoute ma structure de projet dans ce qui précède. De plus, le code d'interface est comme ce que vous tapez. Je vous remercie. – Questions

Questions connexes