[英]Present View Controller without being on a View Controller - Swift / Objective-C
我正在創建一個實現Facebook和Twitter服務的應用程序。 在我看來,我有一個按鈕可以在Facebook / Twitter上切換共享。 如果未連接Facebook / Twitter ,則該按鈕將顯示“connect to”。
當我單擊按鈕時,我的控制器(而不是我的viewcontroller)中的方法將嘗試切換值,因為此控制器會跟蹤我的應用程序的狀態。 當我沒有連接到社交網絡時,我的控制器會注意到並將調用正確的服務。 此服務將啟動webview以提供用戶憑據。
現在我的問題是:
當我在服務中時,我需要通過webview提供憑據。 當我想要顯示這個webview時,我需要傳遞一個將處理演示的View Controller
。 我如何在這里提供viewcontroller?
方法我發現:
我目前的實施方法是方法#3。
如果有些事情不清楚,請告訴我。
任何幫助表示贊賞! 提前致謝!
我希望這個問題能得到更多的關注,我很想知道其他人會如何處理這種情況。
正如您已經說過的,有幾種方法可以實現您的需求,但答案取決於對應用程序的了解。
我肯定會盡量保持業務邏輯和UI盡可能分開,有兩種方法我可以想到這樣做,但它們幾乎是一回事。
使用回調函數使(非UI)控制器負責登錄檢查,然后您可以讓控制器負責業務邏輯,並且調用ViewController負責由於該檢查而呈現任何UI。
正如您所建議的那樣,使用協議,您的控制器可以擁有一個委托,它將是一個符合您協議的ViewController。 然后用法只是獲取您的共享實例,設置委托並調用所需的功能。
我傾向於選擇2更像Swift,因為它是一種面向協議的語言。
如果控制器全局操作並且從應用程序內的任何地方訪問,您可能最終會復制大量代碼來進行這些檢查,您可以通過創建UIViewController的擴展來解決這個問題,該擴展提供了與控制器交互的功能。
我希望這會有所幫助,看到其他人接近這一點的方式肯定會很有趣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.