我已经使用UINavigationController创建了一个应用程序,现在看起来很好,我想将NavigationController的大小调整为更小的尺寸。我该怎么办?
答案 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文档,您需要更改外观的唯一选项是barStyle和translucent属性;
除了少数例外,你应该 永远不要修改导航栏对象 直。允许修改 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];
它看起来像这样: