[英]Navigate to UIViewController from a UIView
這是非常糟糕的行為,您不應將UIView用作標題。 您應該將Navigation View Controller添加為應用程序的第一個視圖控制器。 導航視圖控制器具有導航欄,您可以在其中放置所需的按鈕。 從中,您將能夠推送或顯示其他視圖控制器。
查看官方文檔: https : //developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/NavigationControllers.html
使您的AppHeader
視圖成為UIView
的自定義子類(如果尚未創建)。 將按鈕上的操作連接到視圖中的IBAction
方法。
創建一個協議AppHeaderDelegateProtocol
。 給您的AppHeader
類一個弱的委托屬性。 定義該協議中的方法,這些方法可使AppHeader
通知其擁有的視圖控制器有關按鈕按下的信息。
實現你AppHeaderDelegateProtocol
在視圖控制器將包含的實例AppHeader
。
將委托屬性連接到AppHeader
擁有的視圖控制器的每個實例。
那應該做。
您可以創建一個協議-將其稱為AppHeaderDelegate或其他名稱-並設置其他viewController來采用該協議。 您可以定義函數以使您的委托人知道按下了某個按鈕,並且委托人viewController可以通過顯示正確的視圖控制器來對此做出反應。
蘋果的協議文檔在這里 。
或者,您可以使用NotificationCenter廣播通知,以使訂閱者知道某個按鈕被按下,並使您的ViewController監聽這些通知並做出相應的反應。 但是,您必須管理類何時開始/停止偵聽,因為您可能有多個對象試圖對單個通知做出反應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.