我有一个名为dataviewcontroller的视图控制器。另一种名为scopeviewcontroller的视图控制器。

dataviewcontroller中,我有一个IBOutletUIButton,称为AddData。我想在scopeviewcontroller中调用此按钮。我想隐藏该按钮。

我在pager中使用了这个视图控制器。我想将AddData按钮隐藏在第三页上的scopeviewcontroller中。

我在viewdidload中的scopeviewcontroller中尝试了此代码。

但是我是否收到此错误:Value of type 'UIViewController' has no member 'AddData'
我在第一个视图控制器中的代码:

class dataviewcontroller: UIViewController {

    @IBOutlet var AddData: UIButton!
}

我的第二个视图控制器:
class scopeviewcontroller: UIViewController,UITableViewDelegate, UITableViewDataSource {

 override func viewDidLoad() {
        super.viewDidLoad()
let storyboard = UIStoryboard(name: "data", bundle: nil)
       let controller = storyboard.instantiateViewController(withIdentifier: "dataviewcontroller")

        controller.AddData.hidden = true

    }


}

请帮帮我!...谢谢

最佳答案

您无需访问添加到寻呼机上的每个视图控制器上的按钮。您可以隐藏scopeviewcontroller本身上的按钮。在CAPSPageMenuDelegate的帮助下

在ScopeViewController中,设置您的寻呼机的委托。

fun viewDidLoad() {
   super.viewDidLoad()
   pageMenu.delegate = self
}

并实现协议CAPSPageMenuDelegate
extension scopeviewcontroller: CAPSPageMenuDelegate {
    func willMoveToPage(_ controller: UIViewController, index: Int) {
        self.AddData.isHidden = (index == 2)
    }
}

关于ios - 从一个类调用IBOutlet UIButton到另一个Viewcontroller,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45004596/

10-11 22:47
查看更多