我正在制作一个入职屏幕,在最后一个屏幕上,我有一个按钮,显示“继续”,应该关闭该入职屏幕。入职屏幕是一个集合视图控制器,每个页面都有单元格。请不要犹豫,要求澄清,我不知道还要添加什么。
谢谢
修改 因此,我实现了用户Francesco Deliro的答案,第一个问题是我不小心将“ delegate = self”添加到了viewDidLoad()中。我解决了这个问题,但viewController仍然没有关闭。 我的代码如下所示,在我的viewController单元格中:
ngOnInit() {
if (childId > 0){
this.data.getChildInfo(childId).subscribe(
(data: ChildInfo) => {
this.ChildInfo = data;
this.isLoadingResults = false; },
(error) => {
return this.loadingMessage = 'There has been an error -' + error.message;
}
);
} else {
this.isLoadingResults = false;
this.ChildInfo = new ChildInfo;
}
},
(error) => {
return this.loadingMessage = 'There has been an error -' + error.message;
});
}
这是扩展名
let loginCell = LoginCell()
loginCell.delegate = self
我不需要在类中的任何地方调用该函数,只需将其放在主类之外即可。
编辑2 这是我将按钮动作连接到原始按钮的方式
extension TutorialViewController: LoginCellDelegate {
func didCompleteOnboarding() {
print("I should dimiss")
self.dismiss(animated: true, completion: nil)
}
答案 0 :(得分:0)
您可以使用委托,例如:
protocol YourCellDelegate: class {
func didCompleteOnboarding()
}
然后在您的单元格中
class CustomCell: UICollectionViewCell {
weak var delegate: YourCellDelegate?
// in your button action
func dismissAction() {
delegate.didCompleteOnboarding()
}
}
最后,在视图控制器中,在cellForItem函数中设置单元格委托:
yourCell.delegate = self
并添加:
extension YourViewController: YourCellDelegate {
func didCompleteOnboarding() {
// dismiss here
}
}