Ceci est lié à une question que j'ai posée précédemment, mais la question d'origine a été résolue. J'espère que vous pouvez ouvrir une nouvelle question, sinon, n'hésitez pas à la supprimer. J'essaie de construire une application iPhone simple en utilisant tablesviews et une barre d'onglets. Chaque vue est la même par programmation, sauf pour le titre et le type de données qui doit être affiché. Sauf pour cela, ils se comportent tous de la même manière.Passage d'un NSDictionary à un ViewController depuis AppDelegate
Actuellement le code dans mon AppDelegate gère la distribution des viewcontrollers aux différents onglets et définit le titre en conséquence. Ce que je ne peux pas comprendre cependant, est comment passer un tableau spécifique d'objets (chaque tableau diffère par tabulation) à chaque viewcontroller distribué afin qu'il soit utilisé par la tableview.
J'espère que vous pouvez m'aider. Mon code suit ci-dessous:
AppDelegate.h
#import <UIKit/UIKit.h>
@interface MyAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
UIWindow *window;
UITabBarController *tabBarController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@end
AppDelegate.m
#import "RootViewController.h"
#import "MyAppDelegate.h"
@implementation MyAppDelegate.h
@synthesize window, tabBarController;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
NSDictionary *row1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"1", @"Id",
@"My Name", @"Name",
@"My Type", @"Type",
@"My Meta", @"Meta",
@"My Excerpt Text", @"Excerpt",
@"My Body Text", @"Body",
@"icon.jpg", @"Icon",
@"image.jpg", @"Image", nil];
NSArray *array = [[NSArray alloc] initWithObjects:row1, nil];
self.events = array;
NSArray *tableControllersConfig = [NSArray arrayWithObjects:
[NSDictionary dictionaryWithObjectsAndKeys:@"test1", @"DataSource", @"Title of the Tableview", @"Title", @"icon.png", @"Icon", nil],
NSMutableArray *tableControllers = [NSMutableArray array];
for (NSDictionary *configDict in tableControllersConfig) {
RootViewController *controller = [[RootViewController alloc] initWithNibName:@"TableView" bundle:nil];
controller.tableView.delegate = controller;
controller.title = [configDict valueForKey:@"Title"];
controller.tabBarItem.image = [UIImage imageNamed: [configDict valueForKey:@"Icon"]];
[tableControllers addObject:controller];
[controller release];
}
self.tabBarController.viewControllers = [NSArray arrayWithArray:tableControllers];
[window addSubview:tabBarController.view];
[row1 release];
[array release];
}
- (void)dealloc {
[tabBarController release];
[window release];
[super dealloc];
}
@end
Le RootViewController implémente le protocole UITableViewDataSource.