Передача данных от делегата в контроллер iOS - PullRequest
0 голосов
/ 18 сентября 2011

Я пытаюсь передать NSArray из appDelegate в viewController, но кажется, что данные не сохраняются.Например, 'courseArray' содержит значения в appDelegate, но в viewController он пуст.Что я делаю не так?

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


    CourseSelectController *courseTimeTableView = [[CourseSelectController alloc] initWithNibName:nil bundle:nil];
    courseTimeTableView.courseArray = self.courseArray;
    [courseTimeTableView release];

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.viewController = [[[WestminsterViewController alloc] init] autorelease];

    if([self.window respondsToSelector:@selector(setRootViewController:)])
    {
        [self.window performSelector:@selector(setRootViewController:) withObject:self.viewController];
    }
    else
    {
        [self.window addSubview:[self.viewController view]];
        [self.viewController.view setFrame:[self.window bounds]];
    }
    [self.window makeKeyAndVisible];
    return YES;

}

Ответы [ 3 ]

0 голосов
/ 18 сентября 2011

Итак, вы освобождаете courseTimeTableView сразу после того, как вы присвоили массив Course.

0 голосов
/ 19 сентября 2011

В вашем коде есть серьезные проблемы.

Во второй строке, когда вы устанавливаете courseTimeTableView.courseArray с помощью self.courseArray, self.courseArray просто возвращает nil (если вы используете обычные синтезированные свойства).

Затем в третьей строке вы отпускаете контроллер вида! У него было только 1 счет, поэтому он освобожден и больше не может использоваться.

Начните с исправления: :)

0 голосов
/ 18 сентября 2011

Вы присваиваете courseArray экземпляру CourseSelectController, а затем немедленно выбрасываете этот контроллер, освобождая его.

Затем вы создаете WestminsterViewController и назначаете его в качестве корневого контроллера представления вашего окна, но этот контроллер представления никогда не назначался courseArray.

...