首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios5 UIAppearance不能正常工作的情况下出现UITableView?

问ios5 UIAppearance不能正常工作的情况下出现UITableView?
EN

Stack Overflow用户
提问于 2012-03-20 01:24:11
回答 1查看 2K关注 0票数 5

我正在尝试为UINavigationController中加载的多个UITableViews设置背景。我使用的是在iOS 5中添加的外观代理,但它的工作方式与我预期的不同。

这个应用程序使用的是一个主视图为UINavigationController的UISplitViewController。在其中,我有一个名为PBMasterTableViewController的UITableViewController子类。在我的AppDelegate中,我有以下内容:

代码语言:javascript
复制
    UIImageView *bgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menuBg.png"]] autorelease];
    [[UITableView appearanceWhenContainedIn:[PBMasterTableViewController_Ipad class], nil] setBackgroundView:bgView];

这工作得很好,我在拆分视图中的主菜单有我想要的背景。

在这个主菜单中,当我选择相关行时,会将其他3个UITableViewController子类推送到导航控制器上。但是,我无法使用外观代理来更改这些表的背景。我正在尝试以下操作:

代码语言:javascript
复制
    UIImageView *bgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menuBg.png"]] autorelease];
    [[UITableView appearanceWhenContainedIn:[PBTwitterTableViewController class], nil] setBackgroundView:bgView];

这也在前面显示的代码下面的appDelegate中(但是没有重复创建图像视图),但这根本不起作用!当我将PBTwitterTableViewController的一个实例推到导航控制器上时,我只是得到了一个没有背景更改的标准表视图。

我知道我可以简单地更改tableViewControllers本身的背景视图,但是我不希望当菜单在splitViewControllers弹出窗口中显示时,当菜单旋转到竖屏时,这些背景不在那里,因此我尝试使用appearanceWhenContainedIn:

我也不想简单地将外观设置为包含在UISplitViewController中时的外观,因为在两个实例中,我有一个UITableView被加载到细节部分,所以这将更改我不想要的外观。

有没有其他方法可以在没有外观代理的情况下,让我在弹出窗口中更改背景,或者有什么方法可以让代理工作,或者我只是错过了一些愚蠢的东西?

谢谢

编辑:

我刚刚尝试创建UINavigationController的一个子类,并尝试使用[[UITableView appearanceWhenContainedIn:[PBMenuNavigationController class], nil] setBackgroundView:bgView];,它在主菜单上仍然可以正常工作,但对于推送到堆栈上的任何其他UITableView则不行,所以我现在真的被难住了:(

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-22 00:29:12

好了,把它整理好了。只是在每个视图中这样做,并检查父控制器不是我不想要的东西。不管怎样,谢谢你

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9774838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档