gpt4 book ai didi

ios - 如何从 UIViewController 的扩展中为两个不同的 Controller 返回两个不同的呈现 Controller ?

转载 作者:搜寻专家 更新时间:2023-11-01 06:40:07 24 4
gpt4 key购买 nike

这是我的分机:

extension UIViewController: UIViewControllerTransitioningDelegate {

func presentAssignBookToClassesViewController(controller: BWAssignBookToClassesViewController) {

controller.modalPresentationStyle = .Custom
controller.transitioningDelegate = self
controller.preferredContentSize = CGSizeMake(500, 575)

presentViewController(controller, animated: true, completion: nil)
}

func presentSettingsStoryboard() {

if let settingsController = UIStoryboard(name: "TeacherSettingsStoryboard", bundle: nil).instantiateInitialViewController() {

settingsController.modalPresentationStyle = .Custom
settingsController.transitioningDelegate = self
settingsController.preferredContentSize = CGSizeMake(500, 575)

presentViewController(settingsController, animated: true, completion: nil)
}
}

//MARK: - UIViewControllerTransitioningDelegate

public func presentationControllerForPresentedViewController(presented: UIViewController, presentingViewController presenting: UIViewController, sourceViewController source: UIViewController) -> UIPresentationController? {

return BWOverlayPresentationController(presentedViewController: presented, presentingViewController: presenting)
}
}

presentationControllerForPresentedViewController: 中,我需要根据调用的方法返回 BWOverlayPresentationControllerBWSettingsPresentationController。如何实现?

最佳答案

你可以简单地通过restorationIdentifier来区分它们(你可以简单地使用storyboard来设置):

//MARK: - UIViewControllerTransitioningDelegate

public func presentationControllerForPresentedViewController(presented: UIViewController, presentingViewController presenting: UIViewController, sourceViewController source: UIViewController) -> UIPresentationController? {

if presented.restorationIdentifier == BWSettingsRestorationIdentifier {
return BWSettingsPresentationController(presentedViewController: presented, presentingViewController: presenting)
} else {
return BWOverlayPresentationController(presentedViewController: presented, presentingViewController: presenting)
}
}

关于ios - 如何从 UIViewController 的扩展中为两个不同的 Controller 返回两个不同的呈现 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36640240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com