我有一个嵌入我的tableview标题的uiview文件
(类TopHeader:UIView,UICollectionViewDelegate,UICollectionViewDataSource)
如果我使用present(_:animated:completion:)
我得到:类型TopHeader
的值没有成员'存在'
(self.present(MyOtherViewController(doModes:[。photo]),动画:true,完成:nil))
如何从那里使用现有方法?我可以从这个uiview文件调用我的uiviewcontroller中的函数吗?
答案 0 :(得分:0)
您无法致电present(_:animated:completion)
,因为它是UIViewController
的方法,而不是UIView
。
您不应直接从视图中呈现视图控制器。如果您需要此行为,最好使用UIViewController
而不是UIView
,因为视图控制器无论如何都会在其中包含view
。
答案 1 :(得分:0)
我可以从这个uiview文件调用我的uiviewcontroller中的函数吗?
是的,如果视图位于视图控制器层次结构中,您可以递归获取next
响应者,直到您到达拥有的视图控制器。
答案 2 :(得分:0)
present(_:animated:completion:)
方法是UIViewController
的方法,而非UIView
。您需要找到将请求传递给视图控制器的方法。通常的模式是定义一个协议,让视图作为视图控制器显示另一个视图控制器。然后设置视图,使视图控制器成为符合该协议的委托。