PaR*_*Nos 5 uitableview uinavigationcontroller ios5 uiappearance
我正在尝试为UINavigationController中加载的许多UITableView设置背景.我正在使用在iOS 5中添加的外观代理,但它并没有按照我的预期进行操作.
该应用程序使用UISplitViewController,主视图是UINavigationController.在这里,我有一个名为PBMasterTableViewController的UITableViewController子类.在我的AppDelegate中,我有以下内容:
UIImageView *bgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menuBg.png"]] autorelease];
[[UITableView appearanceWhenContainedIn:[PBMasterTableViewController_Ipad class], nil] setBackgroundView:bgView];
Run Code Online (Sandbox Code Playgroud)
这工作正常,拆分视图中的主菜单具有我想要的背景.
从这个主菜单中,我选择相关行时,将其他3个UITableViewController子类推送到导航控制器.但是,我无法使用外观代理更改这些表的背景.我正在尝试以下方法:
UIImageView *bgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menuBg.png"]] autorelease];
[[UITableView appearanceWhenContainedIn:[PBTwitterTableViewController class], nil] setBackgroundView:bgView];
Run Code Online (Sandbox Code Playgroud)
这也是在之前显示的代码正下方的appDelegate中工作(但是没有重复创建图像视图)但这根本什么都不做!当我将PBTwitterTableViewController的实例推送到导航控制器时,我只得到一个没有背景更改的标准表视图.
我知道我可以简单地更改tableViewControllers本身的背景视图,但是当旋转到portait时,当splitViewControllers popover中显示菜单时,我不希望这些背景存在,因此我尝试使用appearanceWhenContainedIn:
我也不想简单地将外观设置为包含在UISplitViewController中,因为在2个实例中我将UITableView加载到详细信息部分,因此这将改变我不想要的那些外观.
有没有另外一种方法来做这个没有外观代理仍然允许我改变它在弹出窗口中的背景,或有一种方法使代理工作,或者我只是错过了一些愚蠢的东西?
谢谢
编辑:
我刚刚尝试创建UINavigationController的子类并尝试使用[[UITableView appearanceWhenContainedIn:[PBMenuNavigationController class], nil] setBackgroundView:bgView];它再次正常工作主菜单,但不是任何其他UITableView推入堆栈,所以我现在真的难倒:(
| 归档时间: |
|
| 查看次数: |
2017 次 |
| 最近记录: |