ios - 在没有全屏的情况下将一个 View Controller 呈现在另一个 View Controller 之上

标签 ios swift cocoa-touch

我有 MainViewControllerAddViewController,当用户点击 MainViewController 中的按钮时应该显示它们。

我试过使用:

self.presentViewController(AddViewController(), animated: false, completion: nil)

但它会显示在整个屏幕上(全屏)。

我在 StackOverflow 中搜索了一些答案,但我找到了一个仅适用于 iPad 的解决方案。

那么如何以正确的方式呈现 View 呢?

注意:我在 Xib 文件中设置了 AddViewController 的 View 框架。

最佳答案

您可以使用 AddSubview 函数。检查此代码。

创建类文件:

class MyClass: UIView {
    class func instanceFromNib() -> UIView {
        return UINib(nibName: "nib file name", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as UIView
    }
}

然后你可以使用这个类从xib中抓取 View :

var myview = MyClass.instanceFromNib()

然后你可以在任何你想要的地方添加这个 View :

var presenterStoryBoard:UIStoryboard = UIStoryboard(name: "nameofstoryboard", bundle: nil)
var myview = MyClass.instanceFromNib()

var vc = presenterStoryBoard.instantiateInitialViewController() as MainViewController

publisherViewController.view.addSubview(myview.view)

关于ios - 在没有全屏的情况下将一个 View Controller 呈现在另一个 View Controller 之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39003790/

相关文章:

ios - 使用 selectRowAtIndexPath 以编程方式选择所有 TableView 行

ios - iOS 13 中的 UITabBar 透明标签错误

ios - 将 cell.section 传递给自定义表格单元格

swift - 如何获取NSDictionary的key

ios - 访问另一个 View Controller

objective-c - 保存托管对象上下文会在iOS 5的performBlock中创建死锁

ios - 在 iOS 中从解析中检索对象的奇怪行为

SWIFT:转换格式为 E、dd、MMM、y、KK:mma 的日期

iphone - 无法使 webViewDidStartLoad 和 webViewDidFinishLoad 正常工作

ios - 使用 convertRect 获取 subview 的窗口坐标问题