如何在iPhone中调整UINavigationController的大小?

时间:2010-05-13 11:55:52

标签: iphone uinavigationcontroller

我已经使用UINavigationController创建了一个应用程序,现在看起来很好,我想将NavigationController的大小调整为更小的尺寸。我该怎么办?

3 个答案:

答案 0 :(得分:4)

如果按代码添加,可以调整大小或移动UINavigatorController ...

    - (void)viewDidLoad
    {
            [super viewDidLoad];
            myview_view = [[[MyCustomView alloc] init]autorelease];
            ControlNav = [[UINavigationController alloc] initWithRootViewController:myview_view]; // Init the UINavigatorController
            ControlNav.navigationBarHidden = YES; // Hide the navigation bar
            ControlNav.view.frame = CGRectMake(50, 50, 665, 370);  // Move and resize the UINavigator Controller
            [self.view addSubview:ControlNav.view];  // Add subview
    }

MyCustomView是一个UIViewController;

答案 1 :(得分:2)

你做不到。

根据UINavigationController文档,您需要更改外观的唯一选项是barStyletranslucent属性;

  

除了少数例外,你应该   永远不要修改导航栏对象   直。允许修改   barStyle或半透明属性   导航栏但你必须   永远不要改变它的框架,边界或   alpha值直接。此外,   导航控制器对象   构建导航的内容   栏动态使用导航   项目(实例)   UINavigationItem类)关联   与视图控制器上   导航堆栈。要改变   导航栏的内容,你   因此必须配置   自定义视图的导航项   控制器。欲获得更多信息   关于导航项目,请参阅   UINavigationItem类参考。

答案 2 :(得分:0)

重要提示:这个想法听起来很棒,似乎在理论上有效,但iAd框架不允许您直接向UIWindow添加AdBannerView。 <<<<<

您可以调整UINavigationController的大小,但不能移动顶部或底部的ToolBar。

以下是将AdBanner放在UINavigationController下方但在其底部工具栏上方的示例。此AdBanner将在您的视图中保持静止 - 它不会使用UIViewController推送和弹出操作进行动画处理。

1)在app delegate:

中调整UINavigationController的大小
navigationController.view.frame = CGRectMake(0, 0, 320, 410);

2)手动调整ViewControllers的大小以在下面添加间隙。执行此操作的好地方是viewDidLoad方法:

self.view.frame = CGRectMake(0, 0, 320, 322);

3)将AdBannerView直接添加到应用程序的窗口(请记住它只是另一个UIView)。因此,AdBanner将位于工具栏上方,但位于任何可见的视图控制器下方。

[window addSubview:addBannerView];

它看起来像这样:

alt text