Ошибка при использовании UIApplication sharedApplication? - PullRequest
0 голосов
/ 16 августа 2011

Очевидно, я новичок в разработке под iOS, но я действительно мог бы воспользоваться чьей-либо помощью.Я создаю приложение панели вкладок, в котором я пытаюсь загрузить .plists в представления развернутой таблицы.Проблема в том, что я не могу понять этот метод правильно, так как я пытаюсь использовать контроллер навигации для вкладки в его ViewController.Я уверен, что моя ошибка во второй строке.

A37dgAppDelegate *AppDelegate = (A37dgAppDelegate *)[[UIApplication sharedApplication] delegate];
AppDelegate.indNavControl *indNavControl;

Впоследствии я получаю некоторые ошибки.Вот код, и я укажу, где ошибки:

    if([Children count] == 0) {

    DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];

    [self.indNavControl pushViewController:dvController animated:YES];//Property "indNavControl" not found on object of type "IndustriesViewController"
    [dvController release];
}
else {

    //Prepare to tableview.
    IndustriesViewController *indViewControl = [[IndustriesViewController alloc] initWithNibName:@"IndustryView" bundle:[NSBundle mainBundle]];

    //Increment the Current View
    indViewControl.CurrentLevel += 1;

    //Set the title;
    indViewControl.CurrentTitle = [dictionary objectForKey:@"Title"];

    //Push the new table view on the stack
    [self.indNavControl pushViewController:indViewControl animated:YES]; //Property "indNavControl" not found on object of type "IndustriesViewController"

    indViewControl.tableDataSource = Children;

    [indViewControl release];
}

}

Просто чтобы прояснить ситуацию, я импортировал файл заголовка моего делегата приложения.Любая помощь будет принята с благодарностью:)

Ответы [ 3 ]

1 голос
/ 16 августа 2011

Неверная строка AppDelegate.indNavControl *indNavControl;. Я думаю, что вам не нужна эта строка вообще. И, нажимая новый контроллер представления, вы можете напрямую использовать AppDelegate.indNavControl вместо self.indNavControl ,

[AppDelegate.indNavControl pushViewController:...
0 голосов
/ 16 августа 2011

сначала создайте экземпляр приложения appdelegate, как, а затем вы можете получить доступ к любым переменным, которые вы объявили в appdelegate как свойство, synthesize. Нет необходимости создавать отдельную переменную indNavControl.

0 голосов
/ 16 августа 2011

Ваша теория, что проблема во второй строке, верна.

AppDelegate.indNavControl *indNavControl;

эта строка на самом деле ничего не делает.Вам нужен класс с AppDelegate.indNavControl.

У вас есть несколько вариантов:

1), если вы хотите, чтобы indViewControl был 'публичным' свойством

* in your IndustriesViewController.h, move the declaration of indViewControl there.

@interface
{
    WhateverClass *indNavControl;
}

@property (retain) WhateverClass*indNavControl;
@end

2) если вы хотите частную собственность, добавьте пустую категорию вверху вашего .m с объявлением ivar и property сверху.

На что жалуется компилятор, пытается получить доступ к свойству, которое не

вызов self.whateverIvar требует определения @property.

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