新的解決方案的
試試這個
在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];
編輯的導航欄樣式,你可以這樣來做
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
}
來源
2017-07-18 09:13:57
ddb
我試過了。但不工作 –
只需嘗試使用[_window setRootViewController:nav];而不是window.rootViewController = nav; –