[英]iOS how to start a viewcontroller from framework
我已經成功創建了我的私有框架。 沒有錯誤。 我現在已經創建了一個項目,我想要一個簡單的東西,但是我沒有頭緒。 以下是我想要的
我想啟動Framework視圖控制器。 您可以認為這是整個應用程序。 我想啟動它的第一個視圖控制器。 然后按照業務邏輯進行應用程序流程。 我想在用戶退出Framework主視圖控制器時退出應用程序。 實際上,它是完整的應用程序,但是我決定為不同的客戶端構建框架,因為不同的客戶端只需要進行少量修改,但是我不知道應該怎么做。
這是我嘗試在Client項目中啟動第一個視圖控制器的方法,但是它無法識別該控制器。
@IBAction func onClickBtnStartOver(_ sender: Any)
{
let storyBoard : UIStoryboard = UIStoryboard(name: "Storyboard", bundle:nil)
let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("idFrameworkVC") as FwViewController
self.presentViewController(nextViewController, animated:true, completion:nil)
}
它給我類似“ 使用未聲明的類型'FwViewController'的錯誤 ”
所以我應該怎么做才能啟動框架的第一個viewcontroller。
注意:我在一個Storyboard中有ViewController,即Framework內部的Storyboard。
嘗試這個:
UIApplication.shared.keyWindow?.rootViewController = UIStoryboard(name: "yy", bundle: nil).instantiateInitialViewController()
在您的框架中聲明一個打開的func來打開第一個viewController:
open func presentFirstViewControllerOn(_ viewController:UIViewController) {
let storyBoard : UIStoryboard = UIStoryboard(name: "Storyboard", bundle:nil)
let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("idFrameworkVC") as FwViewController
viewController.presentViewController(nextViewController, animated:true, completion:nil)
}
然后從客戶端應用的VC調用此方法。 確定哪個是第一個VC(如果需要)是框架的責任,而不是您的客戶端應用程序的責任。
如果一切設置都很好,那么您可能尚未將框架導入其中。 這是非常重要的部分。 仔細檢查是否已將Public聲明為您的框架VC。 然后在它之后,您需要在您的方法中啟動它。
我建議您查看此選定的答案。 這就是你的情況
PS:不要忘記對所選答案進行評論,因為有關於崩潰的討論。 我懷疑您是否會遇到這些問題,但是,如果您遇到任何崩潰,請在回答中使用該注釋來解決問題
使用您的框架包標識符
let frameworkBundle = Bundle(identifier: "your framework bundle identifier")
let storyboard = UIStoryboard(name: "your framework storyboard name", bundle: frameworkBundle)
let mas = storyboard.instantiateInitialViewController() as! UIViewController
self.present(mas, animated: true, completion: nil)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.