0
我已經創建了一個獨立的類來處理從SqlServer中加載數據。現在,我將搜索項傳遞給對象,並搜索數據庫中的項目。如何從非UIViewController顯示modalView
如果找到不止一個項目,它需要呈現modalviewcontroller。問題是,這是一個NSObject,並不知道呈現模態視圖。
我怎樣才能呈現從NSObject的一個modalviewcontroller?
我已經創建了一個獨立的類來處理從SqlServer中加載數據。現在,我將搜索項傳遞給對象,並搜索數據庫中的項目。如何從非UIViewController顯示modalView
如果找到不止一個項目,它需要呈現modalviewcontroller。問題是,這是一個NSObject,並不知道呈現模態視圖。
我怎樣才能呈現從NSObject的一個modalviewcontroller?
嘗試委派呈現所述模態的視圖控制器 - 要麼通過張貼上重複通知(提供了靈活性,其中查看控制器禮物)或限定一個委託協議。這將保持你的模型與你的視圖分開,保持你的應用程序的MVC架構。
編輯:爲代表團使用的塊在我看來是一個罰款的做法。我只是調整你的API以在重複的情況下執行一個塊,並讓你的模態另一個塊來處理來自很多方面的選擇。這可能會給你最大的靈活性。
EDIT2:根據您當前的API的理解,我建議這樣的:
- (void)searchForItemWithString:(NSString *)searchString completionBlock:(librarianDidSelectItemBlock)block multiSelectBlock:(librarianMultiSelectBlock);
而且我想設計自己的模式視圖控制器採取完成塊爲好。
我試圖保留這一切在我做的對象。我結束了對應用程序委託的引用,並從那裏獲取rootviewcontroller。你對這個解決方案有什麼看法? – Hackmodford
@Hackmodford我不認爲這是理想的。您已將您的對象耦合到應用程序委託和應用程序委託的視圖控制器。但是,如果您不考慮委託模態演示文稿作爲選項,嘗試這可能是您最好的選擇,但您可能會遇到一些可見性問題。 –
我試圖用塊代替委託。我創建了一個我稱之爲圖書管理員的對象。 ViewController會要求圖書管理員搜索一些項目。圖書管理員(NSObject)將搜索,如果它找到1,它只是將結果返回給塊。如果它找到多個它需要呈現一個viewController讓用戶選擇一個項目,然後返回到該塊。那有意義嗎? – Hackmodford