UISplitViewControllers detailView 中的 presentModalViewController 未全屏显示视图
Posted
技术标签:
【中文标题】UISplitViewControllers detailView 中的 presentModalViewController 未全屏显示视图【英文标题】:presentModalViewController in UISplitViewControllers detailView not presenting the view in full screen 【发布时间】:2012-04-24 12:10:32 【问题描述】:我在 mainViewControllers 视图中添加了 UISplitViewController 视图,代码如下。
documentsRootViewController = [[DocumentsRootViewController alloc] initWithStyle:UITableViewStylePlain];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:documentsRootViewController];
documentsRootViewController.title = @"Document List";
documentDetailView = [[DocumentsDetailView alloc] initWithNibName:@"DocumentsDetailView" bundle:nil];
documentsRootViewController.detailViewController = documentDetailView;
docSplitViewController = [[UISplitViewController alloc] init];
docSplitViewController.viewControllers = [NSArray arrayWithObjects:navigationController, documentDetailView, nil];
docSplitViewController.delegate = documentDetailView;
CGRect splitViewFrame = CGRectMake(0, 0, cetralArea.frame.size.width, cetralArea.frame.size.height);
docSplitViewController.view.frame = splitViewFrame;
[cetralArea addSubview:docSplitViewController.view];
现在我想要的是从 UISplitViewController 的 DetailView 中呈现一个 ViewController 我正在尝试在 DetailViewControllers 中如下所示单击我!按钮点击。
- (IBAction) buttonClicked:(id)sender
NSString *phrase = nil; // Document password (for unlocking most encrypted PDF files)
NSArray *pdfs = [[NSBundle mainBundle] pathsForResourcesOfType:@"pdf" inDirectory:nil];
NSString *filePath = [pdfs lastObject]; assert(filePath != nil); // Path to last PDF file
ReaderDocument *readerDocument = [ReaderDocument withDocumentFilePath:filePath password:phrase];
if (readerDocument != nil) // Must have a valid ReaderDocument object in order to proceed with things
ReaderViewController *rViewController = [[ReaderViewController alloc] initWithReaderDocument:readerDocument];
rViewController.delegate = self; // Set the ReaderViewController delegate to self
[self presentModalViewController:rViewController animated:NO];
但这会导致一个尴尬的演示文稿
任何人都可以在这里提出什么问题,提前谢谢..
【问题讨论】:
@Vishal nopes ..我认为这仍然需要改进,但这是第一次它的 k ;) @Shashank 我们也面临同样的问题。你解决了吗? 【参考方案1】:在您的屏幕截图中,我无法确定您的拆分视图控制器左侧和右侧(详细视图)位于何处。更改视图的背景颜色以区分位置。看来你和他们有问题。
无论如何,您可以尝试从 splitView 而不是 Detail 呈现模态视图控制器。
[splitViewController presentModalViewController:rViewController animated:NO];
【讨论】:
嗨,马丁,感谢您的回复,但这不起作用。使用 splitviewcontroller 显示视图控制器没有显示任何内容。【参考方案2】:我相信这里的技巧是改变你想要模态显示的视图控制器的 modalPresentationStyle(以及可选的 modalTransitionStyle):
ReaderViewController *rViewController = [[ReaderViewController alloc] initWithReaderDocument:readerDocument];
rViewController.delegate = self; // Set the ReaderViewController delegate to self
rViewController.modalPresentationStyle = UIModalPresentationFullScreen;
rViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:rViewController animated:YES completion:nil];
【讨论】:
【参考方案3】:我遇到了同样的问题(在 ios 5.1 中)。将 modalPresentationStyle 设置为 UIModalPresentationPageSheet,它应该可以按预期工作。
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
rViewController.modalPresentationStyle = UIModalPresentationPageSheet;
rViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
【讨论】:
【参考方案4】:我发现你给出的 splitview 大小类似于 cetralArea.frame.size.width
。
而不是简单地直接给出你想要给拆分视图的大小。
希望它对你有用。
【讨论】:
以上是关于UISplitViewControllers detailView 中的 presentModalViewController 未全屏显示视图的主要内容,如果未能解决你的问题,请参考以下文章
setlocale(LC_CTYPE,“de_DE.UTF8”)或setlocale(LC_CTYPE,“de_DE.UTF-8”)?
Kendo.Culture('de-DE') 将 Grid 值乘以 100
css Estilos personalizados para mensajes de sistema nativos de Joomla! (en lugar de usar los de la h