Сообщение об ошибке с использованием пользовательского класса (тип свойства 'view' не найден) - PullRequest
0 голосов
/ 27 июня 2011

Я использую пользовательский класс, очень похожий на информационные панели Tweet Bot в моем приложении.У меня этот класс работает отлично при нажатии кнопки, однако я пытаюсь добиться, чтобы эта «панель предупреждений» показывала, когда мое приложение завершает запуск или выходит из режима ожидания.

Для вызова этого класса с помощьюСтандарт Я использую следующий код:

-(IBAction) button1Tapped:(id) sender
{
    [MKInfoPanel showPanelInView:self.view 
                            type:MKInfoPanelTypeInfo 
                           title:@"Tweet Posted!" 
                        subtitle:nil 
                       hideAfter:2];
}

Но у меня есть проблемы, в том числе это в моем основном AppDelegate.m.Я продолжаю получать сообщение об ошибке «Представление типа свойства не найдено в Total_HealthAppDelegate, когда я использую следующее:

- (void)applicationWillEnterForeground:(UIApplication *)application
{

        [MKInfoPanel showPanelInView:self.view
                                type:MKInfoPanelTypeInfo 
                               title:@"Total:Health Support" 
                            subtitle:@"Welcome"
                           hideAfter:3];

}

Любой совет будет отличным

1 Ответ

1 голос
/ 27 июня 2011

Попробуйте использовать self.window вместо self.view, когда этот код находится внутри AppDelegate.Также обязательно включите соответствующие заголовочные файлы и объявите класс.

Однако я рекомендую вам поместить этот код в viewController, который сначала просыпается.Вот один из способов сделать это.

Установите BOOL в NSUserDefaults, называемом justWokeUp.Затем в appDelegate установите значение YES, когда приложение проснется:

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
    [standardUserDefaults setBool:YES forKey:@"justWokeUp];
}

Теперь в любом viewController, который может загружаться первым при возобновлении работы приложения, проверьте это значение, чтобы увидеть,Вы должны отправить предупреждение:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
    if ([standardUserDefaults boolForKey:@"justWokeUp"]) {

        [MKInfoPanel showPanelInView:self.view
                                type:MKInfoPanelTypeInfo 
                               title:@"Total:Health Support" 
                            subtitle:@"Welcome"
                           hideAfter:3];

        [standardUserDefaults setBool:NO forKey:@"justWokeUp"];


}
...