【问题标题】:Objective-c: How to have a one shared background image between the views in UINavigationControllerObjective-c:如何在 UINavigationController 中的视图之间共享一个背景图像
【发布时间】:2011-05-30 10:55:49
【问题描述】:

我正在尝试使用 UINavigationController 作为其他内部 UIViewController 视图的根容器创建一个基本导航应用程序。我已经通过共享工具栏实现了类似的功能。我想知道,这是一个好方法吗,因为工具栏及其项目在每个内部视图上都被重绘(我认为?)。所以,这里是我现有代码的一些细节。在我的主 MultiviewAppDelegate.m 实现文件中,在 didFinishLaunchingWithOptions 方法中,我正在初始化 UINavigationController,然后初始化第一个内部视图 (UIViewController),然后将其视图添加到 UINavigationController。

UINavigationController *nc = [[UINavigationController alloc] init];
[self.window addSubview:nc.view]; 
...
FirstView *v1 = [[FirstView alloc] init];
[nc pushViewController:v1 animated:NO];
[nc setToolbarHidden:NO];
...

所有其他内部视图(如 FirstView)扩展 BaseViewController 类(BaseViewController 扩展 UIViewController),因为在我的 BaseViewController 中,我实现了共享工具栏,我希望在内部视图中可见。因此,在 BaseViewController 类的 viewDidLoad 方法中,我正在创建该工具栏:

- (void)viewDidLoad {  
  UIBarButtonItem *firstViewBtnItem = [[UIBarButtonItem alloc]initWithTitle:@"FirstView"                                                                     style:UIBarButtonItemStyleBordered target:self action:@selector(showFirstView)];  
  UIBarButtonItem *secondViewBtnItem = [[UIBarButtonItem alloc]initWithTitle:@"SecondView"                                                                     style:UIBarButtonItemStyleBordered target:self action:@selector(showSecondView)];
  ...
  NSArray *items = [NSArray arrayWithObjects:firstViewBtnItem, secondViewBtnItem, ..., nil];  
  [firstViewBtnItem release];
  [secondViewBtnItem release];
  [self setToolbarItems:items]; 
  ...

问题是我不确定每次出现每个新的内部视图时都重新绘制工具栏是否好。所以我不确定对背景做同样的事情是否是一个好的决定。或者,我想要的太多了:)

【问题讨论】:

  • 我在每个子视图上方添加了 imageView,对我来说似乎工作正常 :-)

标签: iphone objective-c uinavigationcontroller background shared


【解决方案1】:

您是否尝试过在添加导航控制器的视图之前创建一个视图并将其添加到您的窗口中?无论如何,除非您的背景是 cpu 密集型的,否则我无法想象在每个“内部视图”中都包含它会是一个问题 - 如果您需要没有此背景或背景略有不同的视图,这也为您未来提供了更大的灵活性。

【讨论】:

  • 感谢您将背景图像添加到 MainWndow.xib 中的超级简单想法 :) 我相信以后应该可以从代码中更改该背景图像。说到将它包含在每个内部视图中,我只是很好奇其他人是如何做这些事情的。
猜你喜欢
  • 2011-08-11
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
  • 1970-01-01
  • 2019-12-10
相关资源
最近更新 更多