ios – 从Popover View内部呈现模态视图控制器

因此,在我的通用应用程序中,我有一个部分,其中一个人可以查看我们系统中的现有笔记列表(通过简单的Web服务检索),然后如果需要也可以创建一个新笔记.因此对于 iphone而言,它的布局非常简单,一个TableViewController用于在NavigationBar上显示带有“添加”按钮的列表,该按钮显示添加新项目的模态视图.虽然在iPad上,相同的布局有很多浪费的空间,所以我选择使用popOver方法在popOver中显示列表,然后让它们从那里添加.我的问题是当用户点击PopOver视图中的Add按钮时,模态视图会全屏显示,而不是仅仅出现在popover视图中.这是我到目前为止的代码
-(void) AddButtonpressed:(id)sender {

NewNoteVC *newNote = [[[NewNoteVC alloc] initWithNibName:@"NewNoteVC" bundle:nil] autorelease];
newNote.defaultClientID = defaultClientID;
UINavigationController *navCon = [[[UINavigationController alloc] initWithRootViewController:newNote] autorelease];
if ([isPopOver isEqualToString:@"YES"]) {
    [navCon setModalinPopover:YES];
    [self.navigationController setModalinPopover:YES];
    [self.navigationController presentModalViewController:navCon animated:YES];
}
else {
    [self.navigationController presentModalViewController:navCon animated:YES];
}

}

“isPopOver”字符串只是从前一个屏幕发送的占位符,它调用了这个TableView(我知道我可以将其切换为布尔值以获得更好的性能,我只是将它们快速地拼凑起来试试).我知道我搞砸了某个地方,我只是不知道我需要什么设置才能让它正常工作.

解决方法

您需要将视图控制器的modalPresentationStyle定义为“当前上下文”.
navCon.modalPresentationStyle = UIModalPresentationCurrentContext;

这将导致模态视图控制器像popover的根控制器一样填充popover.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...