如何在iOS屏幕的特定区域显示控制器

时间:2018-08-15 04:41:51

标签: ios swift

如图所示,我在屏幕上有两个控制器。 现在,当我选择tableView时,我想在红色区域中显示ThirdViewController,我尝试使用present(),但它会在整个屏幕上显示。我该如何解决?enter image description here

3 个答案:

答案 0 :(得分:1)

尝试一下

从文件夹演示文稿

下载3个文件

将此添加到将要从中打开Second VC的VC

lazy var slideInTransitioningDelegate = SlideInPresentationManager()

转到其他VC时;

let vc = self.storyboard?.instantiateViewController(withIdentifier: "Ident") as? YourViewController
 vc?.delegate = self
let navigationController = UINavigationController(rootViewController: vc!)

slideInTransitioningDelegate.direction = .bottom // or .left, .right
slideInTransitioningDelegate.disableCompactHeight = true
navigationController.transitioningDelegate = slideInTransitioningDelegate
navigationController.modalPresentationStyle = .custom

self.present(navigationController, animated: true, completion: nil)

教程-https://www.raywenderlich.com/915-uipresentationcontroller-tutorial-getting-started

项目-https://koenig-media.raywenderlich.com/uploads/2016/08/Medal_Count_Completed.zip

答案 1 :(得分:0)

您可以通过以下方式执行此操作:首先将SecondViewController作为子控制器添加到MainViewController中,然后在UITableViewCell中将SecondViewController的视图添加为子视图。

var secondViewController : SecondViewController!

override func viewDidLoad() {
    super.viewDidLoad()

    secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
    self.addChildViewController(setupProfileViewController)

}

现在,当您想显示SecondViewController视图控制器(如didSelectRowAt indexPath的{​​{1}}方法或任何其他按钮操作)上时,请添加以下代码行:

UITableViewCell

答案 2 :(得分:0)

没有附加图像,所以我不确定您到底想要什么;但是要在另一个视图控制器的区域中显示一个视图控制器,可以使用容器视图,这是关于container view

的有用教程

要加载某些操作,可以在操作完成后显示容器视图。