Ios 为什么self.navigationController在情节提要应用程序中为nil?

Ios 为什么self.navigationController在情节提要应用程序中为nil?,ios,objective-c,uiviewcontroller,storyboard,Ios,Objective C,Uiviewcontroller,Storyboard,我有一个基于iOS故事板的应用程序,它使用navigationController来控制视图转换。应用程序代理的DidFinishLaunchWithOptions为: 在初始视图中,由初始导航控制器推动,我推动下一个视图,如下所示: [[UIStoryboard storyboardWithName:@"StoryboardPrincipal" bundle:nil] instantiateViewControllerWithIdentifier:@"ViewControllerUsuari

我有一个基于iOS故事板的应用程序,它使用navigationController来控制视图转换。应用程序代理的DidFinishLaunchWithOptions为:

在初始视图中,由初始导航控制器推动,我推动下一个视图,如下所示:

 [[UIStoryboard storyboardWithName:@"StoryboardPrincipal" bundle:nil] instantiateViewControllerWithIdentifier:@"ViewControllerUsuario"];
 self.ViewUsuarioVIP = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewControllerUsuario"];          
 self.navigationController.navigationBar.hidden = NO;
 self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
 [self.navigationController pushViewController:self.ViewUsuarioVIP animated:YES];
虽然成功推送了下一个视图,但self.navigationController为nil,并且导航栏不会出现

//
//  ViewController.h


#import <UIKit/UIKit.h>
#import "PageControl.h"
#import "ViewUsuario.h"
#import "SaibaMaisViewController.h"
#import "WebService.h"
#import "ViewCaptainViewController.h"


@interface ViewController : UIViewController <UIScrollViewDelegate, PageControlDelegate, UITextFieldDelegate> {
    IBOutlet UIScrollView *_scrollView;
    IBOutlet PageControl *_pageControl;
    IBOutlet UIImageView *leftArrow;
    IBOutlet UIImageView *rightArrow;

    }
@property (nonatomic, retain) IBOutlet UIScrollView *_scrollView;
@property (nonatomic, retain) IBOutlet UIScrollView *_imageScrollView;
@property (nonatomic, retain) IBOutlet PageControl *_pageControl;
@property (nonatomic, retain) IBOutlet UIImageView *leftArrow;
@property (nonatomic, retain) IBOutlet UIImageView *rightArrow;
@property (nonatomic, retain) ViewUsuario *ViewUsuarioVIP;
@property (nonatomic, retain) ViewCaptainViewController *ViewCaptainVIP;
@property (strong, nonatomic) SaibaMaisViewController *SaibaMaisViewControllerVIP;
@property (strong, nonatomic) WebService *WebServiceVIP;
@property (strong, nonatomic) NSString *firstname;
@property (strong, nonatomic) NSString *id;
@property (strong, nonatomic) NSString *lastname;
@property (strong, nonatomic) NSString *type;
@property (strong, nonatomic) NSString *photo;


@end
我试图在故事板上贴一张图片,但我不被允许这样做。但是,导航控制器是RootView。ViewUsaruio声明是:

//
//  ViewUsuario.h
//  FlyVIP
//

#import <UIKit/UIKit.h>
#import "NovoVoo.h"
#import "VoosExistentesTableViewController.h"
#import "VooAbertosViewController.h"

@interface ViewUsuario : UIViewController;
@property (nonatomic, retain) NovoVoo *NovoVooVIP;
@property (nonatomic, retain) VoosExistentesTableViewController *VoosExistentesVIP;
@property (nonatomic, retain) VooAbertosViewController *VoosAbertosVIP;
@property (strong, nonatomic) NSString *firstname;
@property (strong, nonatomic) NSString *id;
@property (strong, nonatomic) NSString *lastname;
@property (strong, nonatomic) NSString *type;
@property (strong, nonatomic) NSString *photo;


@end

您还需要解释故事板的结构,以及ViewControllerUsario视图控制器的标题。您在故事板中的何处定义了导航控制器


如果要将导航控制器作为情节提要的根视图控制器,则必须在情节提要中定义一个。一个不是免费创建的。请注意,如果使用任何其他视图控制器作为根创建故事板,则可以从“编辑器”菜单中选择“嵌入”。这会将根视图控制器更改为导航控制器,并使上一个视图控制器成为导航控制器的第一个子控制器。

您还需要解释故事板的结构以及ViewControllerUsario视图控制器的标题。您在故事板中的何处定义了导航控制器


如果要将导航控制器作为情节提要的根视图控制器,则必须在情节提要中定义一个。一个不是免费创建的。请注意,如果使用任何其他视图控制器作为根创建故事板,则可以从“编辑器”菜单中选择“嵌入”。这将把根视图控制器更改为导航控制器,并使上一个视图控制器成为导航控制器的第一个子级。

我也遇到了同样的问题。。。您可以使用getter方法简单地引用它,即:

[self navigationController]

我也有同样的问题。。。您可以使用getter方法简单地引用它,即:

[self navigationController]

很多时候,你的应用在iOS模拟器中表现得很奇怪,只是XCode很奇怪

完全退出XCode,然后再次运行应用程序

如果这种情况持续存在,则说明您在如何设置故事板方面存在问题。您的视图控制器很可能未嵌入到情节提要中的导航控制器中


我喜欢它,因为它有简单易懂的示例和许多屏幕截图。

很多时候,你的应用程序在iOS模拟器中表现得很奇怪,只是XCode很奇怪

完全退出XCode,然后再次运行应用程序

如果这种情况持续存在,则说明您在如何设置故事板方面存在问题。您的视图控制器很可能未嵌入到情节提要中的导航控制器中


我喜欢它,因为它有简单易懂的示例和许多屏幕截图。

该代码以什么方式出现?编辑您的问题以包含整个方法,包括方法声明。我猜您没有正确嵌入navigationController。该代码出现在哪个方法中?编辑您的问题以包含整个方法,包括方法声明。我猜您没有正确嵌入navigationController。谢谢Duncan,当我定义故事板的导航控制器并将其编码为initalrootview时,nvagationController属性不应该通过初始化过程自动可见和初始化吗?不。仅当您在问题导航控制器的子级。我从项目中删除了所有navigationController定义,现在navigationController不再为零。但是,导航栏不会显示,导航控制器堆栈中的最后一个视图也会显示,但上一个视图中的控件(例如pickerView)仍处于活动状态。当前视图中的控件不起作用。您需要将情节提要的屏幕截图上载到第三方图像站点,然后发布到此处。告诉用户哪些视图控制器场景具有哪些ID。在没有看到的情况下,很难判断出是什么问题。也回到你原来的帖子,然后从故事板上发布实例化视图控制器的整个方法,然后坦克斯·邓肯(Tanks Duncan),但是我不能在不公开公司业务的情况下发布整个项目。无论如何你帮了很多忙。谢谢Duncan,当我定义故事板的导航控制器并将其编码为initalrootview时,nvagationController属性不应该自动可见并通过初始化过程初始化吗?不。只有当你将相关视图控制器设为导航控制器的子级时,才应该如此。我删除了所有属性项目中的navigationController定义,现在navigationController不再为零。但是,导航栏不会显示,导航控制器堆栈中的最后一个视图也会显示,但上一个视图中的控件(例如pickerView)仍处于活动状态。当前视图中的控件无效。您需要
d将故事板的屏幕截图上传到第三方图像站点,并将其发布在此处。告诉用户哪些视图控制器场景具有哪些ID。在没有看到的情况下,很难判断出是什么问题。也回到你原来的帖子,然后从故事板上发布实例化视图控制器的整个方法,然后坦克斯·邓肯(Tanks Duncan),但是我不能在不公开公司业务的情况下发布整个项目。无论如何,你帮了很多忙。这和self.navigationContoller一样。这和self.navigationContoller一样