模态视图控制器大小
Posted
技术标签:
【中文标题】模态视图控制器大小【英文标题】:Modal View Controller Size 【发布时间】:2012-06-05 17:03:08 【问题描述】:我正在尝试显示模态视图控制器,但在 iPad 上保持导航栏显示。我尝试了不同的演示风格,但都没有奏效。是否可以调整它的大小,或者将其显示在某个视图的正上方,而不是整个视图控制器的上方?
编辑: 添加代码:
- (void)buttonPressed:(id)sender
RKWebViewController *webViewController = [[RKWebViewController alloc] initWithNibName:nil bundle:nil];
webViewController.request = [NSURLRequest requestWithURL:_link];
webViewController.webView.delegate = self;
webViewController.shouldDisplayDoneButton = YES;
webViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentModalViewController:webViewController animated:YES];
【问题讨论】:
你能添加一些你尝试过的代码吗? 我只有一个视图控制器,它调用了一个不同的类,它有一个视图(或者更确切地说,多个视图堆叠)。然后在ViewController
中,我只需单击按钮即可获得presentModalViewController
。
添加您用于呈现模态视图的代码,其中一定有问题。您是否创建了导航堆栈?
已添加。是的,我有一个导航堆栈。
【参考方案1】:
使用 -
- (void)buttonPressed:(id)sender
RKWebViewController *webViewController = [[RKWebViewController alloc] initWithNibName:nil bundle:nil];
webViewController.request = [NSURLRequest requestWithURL:_link];
webViewController.webView.delegate = self;
webViewController.shouldDisplayDoneButton = YES;
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:webViewController];
[webViewController release];
navController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentModalViewController:navController animated:YES];
[navController release];
【讨论】:
当您从 UIViewController 的子类呈现模态视图控制器时,它不会在模态上扩展调用导航控制器的导航栏。所以模态视图覆盖了全屏。查看这个线程的详细描述 - ***.com/questions/948023/… 我的webViewController
使用self.navigationItem
更改完成按钮图像。所以我的方式是,它改变了navigationItem
,但导航项没有显示的位置,除非 ViewController 在导航控制器中 - 这是一个正确的解释吗?
是的,有点。 View 可以访问导航控制器,但 View 会覆盖整个屏幕,因此您无法看到更改。以上是关于模态视图控制器大小的主要内容,如果未能解决你的问题,请参考以下文章
横向模式下的导航控制器堆栈,但总是以纵向帧大小模态呈现视图控制器视图
当每个新的视图控制器被推送时,调整导航控制器的大小以模态 UIModalPresentationFormSheet 呈现