«NSObject» может не отвечать на -navigationController - PullRequest
1 голос
/ 26 апреля 2011

Привет, у меня в настоящее время есть предупреждение в строке кода, где я пытаюсь выдвинуть новый вид на экран. Схема // мой NSObject получает код = 1 от моего сервера, который я настроил. Все работает нормально, код приходит, который затем инициализирует AlertView, где я настроил оператор if, чтобы поймать нажатие кнопки моего сообщения AlertView. Когда эта кнопка нажата, мое приложение падает.

Я объявил свой ViewController для представления, которое я пытаюсь вставить в его заголовочный файл, и нет ошибок, только предупреждение при компиляции.

это мой NSObject, который я сделал

    /////.h
    #import <Foundation/Foundation.h>


@interface alerts : NSObject {

}

- (void)pleaseRegisterDevice;

@end


/////.m
#import "alerts.h"
#import "instaCode1_3AppDelegate.h"
#import "RegisterDeviceViewController.h"


@implementation alerts

//use this alert when phone falls out of sync
- (void)pleaseRegisterDevice {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Please Register Device"
                                                    message:@"click OK to register"
                                                   delegate:self
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];

    [alert autorelease];
    [alert show];

}


//Catch pleaseRegisterDevice method
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
    if ([buttonTitle isEqualToString:@"OK"]) {
        NSLog(@"msg from alertView method");

        //open new wndow

        RegisterDeviceViewController *regViewController = [[RegisterDeviceViewController alloc] init];


        //Push it onto the top pf the navigation controller's stack
        **[[self navigationController] pushViewController:regViewController animated:YES];**



    }
    else {
        NSLog(@"was not able to push view");
    }

}

- (void)dealloc {
    [super dealloc];
}
@end

Я выделил строку кода, где я получаю предупреждение, что «предупреждения» могут не отвечать на -navigationController

любая помощь будет принята с благодарностью.

Ответы [ 3 ]

2 голосов
/ 26 апреля 2011

Я не думаю, что подкласс NSObject имеет UINavigationController ... Вам нужно получить указатель на контроллер навигации вашего приложения, например,

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate.navigationController pushViewController:regViewController animated:YES];
0 голосов
/ 26 апреля 2011

У вас нет экземпляра или метода экземпляра с именем navigationController, следовательно, предупреждение.

0 голосов
/ 26 апреля 2011

navigationController является свойством, определенным для UIViewController. A NSObject не имеет этого метода.

...