Базовая табличная программа в iOS - Как я могу сказать моей таблице перезагрузить данные из делегата приложения? - PullRequest
1 голос
/ 08 февраля 2012

У меня сейчас есть стандартное табличное приложение.Window имеет UINavigationController в качестве своего rootViewController, и этот UINavigationController был инициализирован с его rootViewController в качестве моего пользовательского UITableController.

Данные таблицы моих приложений меняются со временем.Если я открою приложение из приостановленного состояния, мои данные устаревают.Как мне получить applicationWillEnterForeground для обновления моих данных?Я попробовал что-то неловкое, вроде

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    HabitsTable* vc = [[HabitsTable alloc] init];
    [vc initCoreData];
    UINavigationController* nav = [[UINavigationController alloc]      initWithRootViewController:vc];
    self.window.rootViewController = nav;
    [self.window makeKeyAndVisible];
    return YES;
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
        [[[[self window] rootViewController] navigationController] rootViewController]
}

Но, не удивительно, это не сработало.Я не уверен, как добраться до моего UITableController?

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Я бы порекомендовал использовать NSNotificationCenter . Вы можете увидеть хороший пример использования класса здесь .

0 голосов
/ 08 февраля 2012

Полагаю, ваша близкая попытка:

UINavigationController *navController = (UINavigationController*)[[self window] rootViewController];
HabitsTable *tableView = (HabitsTable*)[navController topViewController];
...