从情节提要(或必要时使用笔尖)在视图顶部加载控制器

Posted

技术标签:

【中文标题】从情节提要(或必要时使用笔尖)在视图顶部加载控制器【英文标题】:Loading controller on top of view from storyboard (or nib if necessary) 【发布时间】:2014-10-29 17:08:30 【问题描述】:

我已经看到了很多关于这个的话题,但是我无法让它按我的意愿工作,很抱歉这看起来像一个重复。 我最想做的事:

显示来自故事板 VC(或 .xib,这真的取决于什么是“最佳”)的视图,就好像它是一个警报一样。用户必须与其交互,然后将其关闭。

这是我所拥有的:

我的故事板中的视图控制器;它链接到相应的 .h 和 .m 文件,并且在那一侧一切正常。

注意:那个 viewcontroller 是“单独的”,没有 segue 导致它。

现在我在我的应用程序流中的活动 VC 中,我正在这样做:

ADFViewController *adf = [[ADFViewController alloc]initWithNibName:@"ADFView" bundle:[NSBundle mainBundle]];
adf.xxx = yyy // just setting some data that the user interacts with.
[self.view addSubview:adf.view];

(VC 有一个按钮,当用户决定这样做时,[self.view removeFromSuperview]; 会自行关闭。)

我也试过用这个:

adf = [self.storyboard instantiateViewControllerWithIdentifier:@"ADFViewController"];

两者都不起作用或“几乎”起作用。

它们按照应有的方式链接在一起,情节提要和 Nib 名称对应(我都试过了)。

结果我只是得到一个空白屏幕。视图大小是 300x300,所以它至少应该出现在我的屏幕上。但我得到的只是一个空白屏幕(视图背景)。

当它起作用时,我打算让背景透明,这样它看起来真的像一个警报,但我什至还没有达到这一点。也许我在挣扎,即使我走错了方向。

问题: 难道我做错了什么? 这是实现这一目标的正确方法吗? 我该怎么办?

非常感谢您的宝贵时间。

【问题讨论】:

您想要实现自定义过渡。查看wwdc 2013中的“使用 ViewControllers 的自定义转换” 【参考方案1】:

让视图看起来和行为像警报(具有透明背景等)需要一些工作,因为您不能子类化 UIAlertView。我建议使用已经构建的可定制 UIAlertView 外观对话框。这个问题上列出了几个:

UIAlertView addSubview in ios7

这些基本上只是将视图作为输入,因此您只需传入视图控制器的视图,其他一切都会为您处理。

【讨论】:

以上是关于从情节提要(或必要时使用笔尖)在视图顶部加载控制器的主要内容,如果未能解决你的问题,请参考以下文章

一起使用笔尖和情节提要:将笔尖的按钮目标/动作连接到情节提要中的控制器

Xcode,从情节提要中提取视图到笔尖,最好的方法?

从情节提要设置约束后如何立即修改约束?

意外的 NSAutoresizingMaskLayoutConstraint 将 UIView 从笔尖添加到自动布局情节提要场景

从情节提要重新加载视图时,以编程方式添加的 iOS 子视图会丢失

推送视图控制器后从情节提要加载视图