ios - 我想在 UIView 类中按下按钮时触发导航 Controller

标签 ios swift xcode uinavigationcontroller

当我按下 UIView 类中的按钮时,我想将导航 Controller 触发到其他屏幕。我怎样才能做到这一点?

//创建按钮Iboutlet的UIView类代码

import UIKit

protocol ButtonDelegate: class  {
    func buttonTapped()
}

class SlidesVC: UIView {

  var delegate: ButtonDelegate?

   @IBAction func onClickFinish(_ sender: UIButton) {

   delegate?.buttonTapped()

   }

   @IBOutlet weak var imgProfile: UIImageView!

    }

   //ViewController Class code in Which Button Protocol will be entertained

  class SwipingMenuVC: BaseVC, UIScrollViewDelegate {
         var  slidesVC = SlidesVC()

             override func viewDidLoad() {
                    super.viewDidLoad()

                    slidesVC = SlidesVC()
                    // add as subview, setup constraints etc
                    slidesVC.delegate = self

        }

extension BaseVC: ButtonDelegate {
  func buttonTapped() {

 self.navigationController?.pushViewController(SettingsVC.settingsVC(), 
            animated: true)

   }
   }

最佳答案

更简单的方法是使用类型别名。您必须在 2 个地方编写代码。 1. 您的 viewClass 和 2. 在您的 View Controller 中。

在您的 SlidesView 类中添加一个类型别名并定义参数类型(如果您需要),否则将其留空。

class SlidesView: UIView {
typealias OnTapInviteContact = () -> Void
var onTapinviteContact: OnTapInviteContact?

    @IBAction func buttonWasTapped(_ sender: UIButton) {
    if self.onTapinviteContact != nil {
      self.onTapinviteContact()
    }

  }
}

  class SwipingMenuVC: BaseVC, UIScrollViewDelegate {
             override func viewDidLoad() {
                    super.viewDidLoad()

                    let slidesView = SlidesView()
                    slidesView.onTapinviteContact = { () in
                    // do whatever you want to do on button tap
            }

        }

关于ios - 我想在 UIView 类中按下按钮时触发导航 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55397840/

相关文章:

ios - tableView delete动画仅在从底部删除时有效

objective-c - SKPhysicsContact 有什么方法可以确定哪个物体是 A 和 B?

ios - 当我重新调整尺寸时更改设计 Collection View 单元格

c# - 一个容器 View 上的多个 View

ios - 拍照时相机方向改变。即使方向被锁定。

ios - 区分何时调用 UIApplicationDidBecomeActiveNotification

objective-c - 滚动时增加 UINavigationBar 标题字体大小

iOS - 为什么我不能以相同的方式使用 pushViewController 两次?

objective-c - XCode 中有没有一种好方法可以跨项目重用类并轻松与其他开发人员共享?

ios - 更新到 Xcode 7.0.1,Project 现在有问题