代码之家  ›  专栏  ›  技术社区  ›  ACBurk

uinavigationcontroller+shouldautrotate+no子类

  •  1
  • ACBurk  · 技术社区  · 16 年前

    我有一个导航驱动的应用程序。我需要那个应用程序来旋转。uinavigationcontroller是窗口中的根控制器/视图。我知道(并且已经经历过为什么)将uinavigationcontroller子类化是不允许的。我知道我要做的就是插入:

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
        return YES;
    }
    

    进入uinavigationcontroller,它将旋转良好。

    所以我的问题是:如何在根视图控制器(uinavigationcontroller)上启用旋转而不进行子类化?

    2 回复  |  直到 16 年前
        1
  •  3
  •   Aleksejs Mjaliks    16 年前

    您需要在 rootViewController 不在 UINavigationController .

    UIViewController *rootViewController = [[MyRootViewController alloc] init];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
    [rootViewController release];
    
        2
  •  1
  •   Adam Eberbach Adil Shaikh    16 年前

    您的uinavigationcontroller继承自uiviewcontroller-为什么使用您显示的方法是一件坏事?使用super方法是完全合法的,也是我在uinavigationcontroller中支持旋转的唯一方法。如果继承自uinavigationcontroller(并重写该方法以在不调用super方法的情况下执行其他操作),则不会是子类化吗?

    推荐文章