如何使用UINavigation设置UIWindow的方向

时间:2013-08-09 19:52:10

标签: ios objective-c uinavigationcontroller

我正在将以下代码添加到我的应用程序中,以便从quicklook视图中来回导航。

window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

[self rotateView];
nav = [[UINavigationController alloc] initWithRootViewController:self];

[window addSubview:[nav view]];
[window makeKeyAndVisible];

[[self navigationController] setNavigationBarHidden:YES];

此代码在我的主ViewController viewDidLoad函数中运行。我的应用程序在横向上运行,但此窗口和导航栏以纵向模式加载。我的应用程序没有statusBar,所以我找到的一些代码不起作用。如果我尝试检查并收听状态栏方向通知,则会收到错误消息。

我正在寻找一种允许此导航视图根据应用当前方向设置其方向的方法。

1 个答案:

答案 0 :(得分:0)

如果我理解了您的问题,您的上述代码应放在didFinishLaunchingWithOptions而不是viewDidLoad AppDelegate中,并且MainViewController的初始化也应该在那里。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.mainViewController = //init your MainViewController;
    navigationController = [[UINavigationController alloc] initWithRootViewController:(UIViewController*)viewController];
    [window addSubview:navigationController.view];
    [self.window makeKeyAndVisible];
    return YES;
}