我有一些\r\n
视图控制器的方法,例如:
present
在该控制器(称为 HomeViewController )中,它还会显示很多图标和UILabel(以及其他装饰)。图标和标签及其动作选择器(如上面的方法名称)一起存储在数组中。因此,当点击图标(使用 UIGesturerRecognizer 分配)时,将调用其操作Selector。这一切都很好,即。适当的VC会显示出来并采取措施。
我只是添加一个菜单( MenuNSObject ),该菜单将列出每个图标和标签。这在任何VC中都能很好地显示模式。但是,在点击时会调用上述方法(请参见更多信息),但无法正确执行操作。
例如,从以上代码中调用的VC( ContactUsViewController )(通常)显示包含用户位置的地图-因此它要求获得用户位置权限 。但是,当从菜单中点击该项目时,它将调用上面的代码,并且显示 permission 警报(按预期方式)。然后什么也没有。仍然可以看到相同的VC。
为什么在第一种情况下(从HomeViewController的角度来看)这种方法工作正常,但是在菜单中无法正常工作?
更多信息:
使用collectionView显示菜单项,@objc func contactTapped(_ sender: UITapGestureRecognizer?) {
self.present(ContactUsViewController(), animated: false, completion: (() -> Void)? { })
}
包含以下代码:
didSelectItemAt
其中UIApplication.shared.sendAction(menuItems[indexPath.item].target!, to: self.parent, from: nil, for: nil)
是 HomeViewController (初始)中的变量集,它指向 self
而parent
是menuItems数组中的动作选择器。