1

您好,我目前在尝试将新视图推送到屏幕上的一行代码中收到警告。大纲 // 我的 NSObject 从我设置的服务器接收到一个 code=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 的代码行加粗

任何帮助将不胜感激。

4

3 回答 3

2

我不认为一个NSObject子类有一个UINavigationController......你需要像这样获得一个指向你的应用程序委托的导航控制器的指针

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate.navigationController pushViewController:regViewController animated:YES];
于 2011-04-26T04:37:03.860 回答
0

navigationController是在 a 上定义的属性UIViewController。ANSObject没有这个方法。

于 2011-04-26T04:37:28.370 回答
0

您没有任何名为 navigationController 的实例成员或方法,因此会出现警告。

于 2011-04-26T04:38:38.423 回答