NavigatorController равен нулю

AppDelegate.m

_viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];

UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:_viewController];
        nav.navigationBar.barStyle = UIBarStyleBlackOpaque;
[_window addSubview:nav.view];

ViewContoller.m

UINavigationController *nav = self.navController;
[nav pushViewController:controller animated:YES];

Я не знаю почему UINavigationController всегда ноль

Пожалуйста помоги!!

4 ответа

Вместо добавления navigationControllerрассматриваю как window"s subview попробуйте добавить navigationController как окно rootViewController

window.rootViewController = nav;
[_window makeKeyAndVisible];
    @interface AppDelegate ()
    @property (strong, nonatomic) UINavigationController *navigationController;
    @end    

//In Your Appdelegate didfinishlaunching method:

     self.window = [[UIWindow alloc] init];
     [self.window makeKeyAndVisible];
     self.navigationController = [[UINavigationController alloc] initWithRootViewController: YourViewController];
     self.window.rootViewController = self.navigationController;


     //In Your View controller:
     [self.navigationController pushViewController:controller animated:YES];

НОВОЕ РЕШЕНИЕ

попробуй это

в AppDelegate.m

@implementation AppDelegate
{}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UINavigationController *_navController = [[UINavigationController alloc] init];
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.rootViewController = _navController;

    ViewController* _viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    [_navController pushViewController:_viewController animated:YES];

    return YES;
}

в ViewContoller.m теперь это будет работать:

UINavigationController *nav = self.navigationController;
[nav pushViewController:controller animated:YES];

СТАРЫЕ РЕШЕНИЯ

попробуй этот код

в AppDelegate.h обязательно иметь это по крайней мере

@interface AppDelegate : NSObject <UIApplicationDelegate>
{}

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

@end

в AppDelegate.m хотя бы это

@implementation AppDelegate
{}

@synthesize window=_window;
@synthesize navController=_navController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UINavigationController *_navController = self.window.rootViewController;

    UIViewController* _viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    [_navController pushViewController:_viewController animated:YES];

    return YES;
}

@end

в раскадровке обязательно создайте NavigationController, связанный с ViewController, определенный как начальный контроллер представления и связанный как корневой контроллер представления для контроллера связанного представления

на вкладке общих настроек приложения обязательно установите раскадровку в разделе информации о развертывании (также в этом разделе вы можете установить стиль строки состояния)

в ViewContoller.m теперь это будет работать:

UINavigationController *nav = self.navigationController;
[nav pushViewController:controller animated:YES];

отредактировать стиль навигации Bar вы можете сделать это следующим образом

- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
}
homeViewController = (mainStoryboard.instantiateViewControllerWithIdentifier("register") as? RegisterViewController)!
let navigationController :UINavigationController = UINavigationController()

navigationController.pushViewController(homeViewController, animated: true)
                navigationController.navigationBarHidden = false
                window?.rootViewController = nil
                window?.rootViewController = navigationController
                window?.makeKeyWindow()
Другие вопросы по тегам