splitviewcontroller 的详细视图的帧大小在 ios4.2 中没有改变
Posted
技术标签:
【中文标题】splitviewcontroller 的详细视图的帧大小在 ios4.2 中没有改变【英文标题】:frame size of detail view of splitviewcontroller does not change up in ios4.2 【发布时间】:2010-12-17 11:29:42 【问题描述】:我正在我的 ipad 应用程序中实现具有两个视图主视图和详细视图的 splitviewcontroller。在将 ipad 的方向从纵向更改为横向时,我需要隐藏主视图并更改详细视图的帧大小以全屏显示。为此,我正在使用此代码。
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
//adjust master view
UIViewController *master = [self.splitViewController.viewControllers objectAtIndex:0];
UIViewController *detail = [self.splitViewController.viewControllers objectAtIndex:1];
CGRect t = master.view.frame;
t.size.width = 0;
t.size.height = 0;
t.origin.x = 0;
t.origin.y = 0;
[master.view setHidden:YES];
[master.view setFrame:t];
//adjust detail view
CGRect f = detail.view.frame;
f.size.width = 1004;
f.size.height = 768;
f.origin.x = 0;
f.origin.y = 0;
[detail.view setFrame:f];
此代码在 ios3.2 上运行良好,但不适用于 ios4.2。主视图在 ios4.2 中隐藏,但细节视图的帧大小没有改变。
请帮助我。 谢谢 修罗提
【问题讨论】:
【参考方案1】:我发现我的问题的替代方法是,我没有隐藏主视图并在旋转时更改详细视图的框架大小,而是将包含详细视图的类呈现为模态视图。早些时候,我是从上一堂课推它的。我还添加了一个导航栏,带有一个完成按钮来关闭模式视图。这对我有用。
ListingViewController *viewController = [[ListingViewController alloc] initWithNibName:@"ListingViewController" bundle:[NSBundle mainBundle]];
UINavigationController *modalVC = [[UINavigationController alloc]initWithRootViewController:viewController]; // to add navigation bar
modalVC.navigationBar.barStyle = UIBarStyleBlackOpaque;
[self.navigationController presentModalViewController:modalVC animated:YES];
[modalVC release];
[viewController release];
【讨论】:
这只是我为解决问题所做的替代方法。它不完全是所提问题的答案。以上是关于splitviewcontroller 的详细视图的帧大小在 ios4.2 中没有改变的主要内容,如果未能解决你的问题,请参考以下文章
UISlider 详细信息 iOS 5.1 中 Splitviewcontroller 的视图损坏
splitviewcontroller 的详细视图的帧大小在 ios4.2 中没有改变
SplitViewController 打开新的详细信息视图,而不是更新现有的(iPhone 6+)
iPad SplitViewController 带有用于详细视图的单独导航堆栈