Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将UINavigationController添加到窗口时,EXC\u访问错误_Objective C_Cocoa Touch_Ios_Uiviewcontroller_Uinavigationcontroller - Fatal编程技术网

Objective c 将UINavigationController添加到窗口时,EXC\u访问错误

Objective c 将UINavigationController添加到窗口时,EXC\u访问错误,objective-c,cocoa-touch,ios,uiviewcontroller,uinavigationcontroller,Objective C,Cocoa Touch,Ios,Uiviewcontroller,Uinavigationcontroller,我正在使用多个视图控制器和导航控制器开发一个应用程序。当应用程序运行并执行以下代码时,它在尝试添加子视图时抛出异常 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [self.window addSubview:[navigationController view]]; [self.window makeKe

我正在使用多个视图控制器和导航控制器开发一个应用程序。当应用程序运行并执行以下代码时,它在尝试添加子视图时抛出异常

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [self.window addSubview:[navigationController view]];
    [self.window makeKeyAndVisible];
}
我声明导航控制器如下:

@interface SimpleContactsAppDelegate : NSObject <UIApplicationDelegate> {
    NSManagedObjectModel *managedObjectModel;
    NSManagedObjectContext *managedObjectContext;
    NSPersistentStoreCoordinator *persistentStoreCoordinator;

    UIWindow *window;  
    UINavigationController *navigationController;
    // view for adding new contacts
    UIViewController *newContactView;
    UIButton *addButton;

    // controls for the addContactView
    UIButton *saveContactButton;
    UITextField *nameField;
    UITextField *emailField;
    UITextField *phoneField;

    UITableView *contactsTable;
}
@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;  
@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;  
@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator;

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

@property (nonatomic, retain) IBOutlet UIButton *addButton;
@property (nonatomic, retain) IBOutlet UITableView *contactsTable;

// controller and fields for the form
@property (nonatomic, retain) IBOutlet UIViewController *newContactView;
@property (nonatomic, retain) IBOutlet UITextField *nameField;
@property (nonatomic, retain) IBOutlet UITextField *emailField;
@property (nonatomic, retain) IBOutlet UITextField *phoneField;
@property (nonatomic, retain) IBOutlet UIButton *saveContactButton;
@接口SimpleContactsAppDelegate:NSObject{
NSManagedObjectModel*managedObjectModel;
NSManagedObjectContext*managedObjectContext;
NSPersistentStoreCoordinator*persistentStoreCoordinator;
UIWindow*窗口;
UINavigationController*导航控制器;
//添加新联系人的视图
UIViewController*newContactView;
UIButton*添加按钮;
//addContactView的控件
UIButton*saveContactButton;
UITextField*nameField;
UITextField*emailField;
UITextField*phoneField;
UITableView*contactsTable;
}
@属性(非原子、保留、只读)NSManagedObjectModel*managedObjectModel;
@属性(非原子、保留、只读)NSManagedObjectContext*managedObjectContext;
@属性(非原子、保留、只读)NSPersistentStoreCoordinator*persistentStoreCoordinator;
@属性(非原子,保留)IBUIWindow*window;
@属性(非原子,保留)IBuinavigationController*导航控制器;
@属性(非原子,保留)IBUIButton*addButton;
@属性(非原子,保留)IBUITableView*contactsTable;
//窗体的控制器和字段
@属性(非原子,保留)IBUIViewController*newContactView;
@属性(非原子,保留)IBOutlet UITextField*nameField;
@属性(非原子,保留)IBOutlet UITextField*emailField;
@属性(非原子,保留)IBOutlet UITextField*phoneField;
@属性(非原子,保留)IBUIButton*saveContactButton;
我已将导航控制器连接到XIB中的委托对象。请随意查看我的完整来源:


我试过使用NSZombie的仪器,但它似乎没有停止,让我检查出了什么特别的问题。它有时也会继续运行,不会终止。我最终不得不使用active terminal强制退出它。

首先,您声明了一个属性,但通过其实例变量而不是使用该属性来访问UINavigationController

使用以下命令:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [self.window addSubview:[self.navigationController view]];
    [self.window makeKeyAndVisible];
    return YES;
}

其次,您将主nib文件的名称更改为“Window.xib”。您必须将其更改回“MainWindow.xib”,或者必须编辑SimpleContacts-Info.plist并将“Main nib file base name”的值更改为“Window”。

首先,您声明了一个属性,但通过其实例变量而不是使用该属性来访问UINavigationController

使用以下命令:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [self.window addSubview:[self.navigationController view]];
    [self.window makeKeyAndVisible];
    return YES;
}

其次,您将主nib文件的名称更改为“Window.xib”。您必须将其更改回“MainWindow.xib”,或者必须编辑SimpleContacts-Info.plist并将“Main nib file base name”的值更改为“Window”。

非常感谢!!!:那就把它修好了。重命名文件,并将self添加到navigationController。非常感谢!!!:那就把它修好了。重命名该文件,并将self添加到navigationController。