как работает этот код, переустанавливая список данных UITableViewController? - PullRequest
2 голосов
/ 26 февраля 2011

У меня работает этот код, однако я не совсем понимаю, как ему удается установить источник данных для UITableViewController? Должно ли это происходить через настройки Interface Builder?

Это если вы видите строку "tableData = [[NSMutableArray alloc] initWithObjects: etc" и тот факт, что я не вижу, где моя переменная экземпляра "tableData" здесь фактически назначается как данные для UITableView ....

@interface RootViewController : UITableViewController <NewItemControllerDelegate> {  

    NSMutableArray *tableData;
}
@end


@implementation RootViewController
- (void)viewDidLoad {
  [super viewDidLoad];
  tableData = [[NSMutableArray alloc] initWithObjects:@"My Standard View", @"A Different View", nil];   // <== HOW IS THIS MANAGING TO SET THE VIEW WITH THE DATA
}

и для справки

@interface myProjectAppDelegate : NSObject <UIApplicationDelegate> {

    UIWindow *window;
    UINavigationController *navigationController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
@end


@implementation myProjectAppDelegate
@synthesize window;
@synthesize navigationController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after application launch.

    // Add the navigation controller's view to the window and display.
    [self.window addSubview:navigationController.view];
    [self.window makeKeyAndVisible];

    return YES;
}

PS (правка) Итак, что я не могу понять, так это связь между моей переменной «NSMutableArray * tableData», которую я объявил в заголовочном файле RootViewController, и, так сказать, фактическим источником данных UITableViewController? Есть ли по умолчанию "tableData" в UITableViewController, возможно, это то, что я действительно устанавливаю или что-то в этом роде, так что я на самом деле не выделяю новый NSMutableArray для моей переменной, которую я создал, а другую? (надеюсь, это имеет смысл)>

1 Ответ

4 голосов
/ 27 февраля 2011

По умолчанию UITableViewController устанавливает себя в качестве делегата и источника данных своего табличного представления.Поскольку ваш класс является подклассом UITableViewController, он делает то же самое.Конечно, это предполагает, что вы реализовали все методы UITableViewDataSource для фактического использования массива tableData (который вы здесь не показываете).

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