我想在庫中創建一個類,並根據請求與用戶進行復雜的交互。初始化庫的應用程序不會提供任何信息,如UIWindow或任何其他信息。這在技術上可行嗎?我知道我可以做一個簡單的彈出窗口,但那些需要動態構建的東西呢?謝謝。iOS:Objective C中的庫可以生成彈出窗口並管理交互嗎?
2
A
回答
1
任何複雜的用戶交互使用UIViewController
。爲了以模態方式呈現視圖控制器,您必須找到合適的父視圖控制器。 可以使用的UIWindow
這樣的-rootViewController
方法可以訪問應用程序的根視圖控制器:
NSArray *windows = [[UIApplication sharedApplication] windows];
UIViewController *rootViewController = (windows.count > 0) ? [[windows objectAtIndex:0] rootViewController] : nil;
if (rootViewController)
// Present your view controller modally
else
// Unable to present any view controller
你也可以提供一個委託方法,並用它來得到一個視圖控制器:
- (UIViewController *) rootViewControllerForComplexClass:(id)complexClass;
在你的庫中,你可以訪問代理並訪問這樣的視圖控制器:
UIViewController *rootViewController = [self.delegate rootViewControllerForComplexClass:self];
// Present your view controller modally
2
你的圖書館將有機會獲得像[UIApplication sharedApplication]
單身,所以如果你想呈現的東西給用戶,你可以添加您的視圖直接窗口:
- (void)addViewToWindow:(UIView *)aView
{
UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow];
[mainWindow addSubview:aView];
}
也許一個更好的方法是但是,從視圖控制器中以模態方式呈現它。
+0
我可以創建視圖控制器並添加在窗口,然後調用它的方法來啓動模態交互? – ShoeFly
+1
是的,但如果這是你要去的路線,我認爲你應該重新考慮你的選擇。爲什麼不讓你的庫的用戶用'-presentModalViewControllerAnimated:'呈現你的視圖控制器? –
相關問題
- 1. C#交互式窗口可以與我的代碼交互嗎?
- 2. 窗體彈出窗口和交互
- 3. openidbutton可以用於彈出窗口嗎?
- 4. Flex中的彈窗管理器可以爲整個HTML頁面共享和集中彈出窗口嗎?
- 5. GEF可以使用SWT窗口作爲彈出窗口嗎?
- 6. Perl可以監視彈出窗口並自動選擇是嗎?
- 7. Flex彈出窗口管理器問題
- 8. 向管理生成器生成的管理頁面添加交互
- 9. Windows彈出窗口交互使用python中的selenium webdriver下載
- 10. 使用引導彈出窗口中的交互式元素
- 11. 與Selenium中的PDF彈出窗口交互
- 12. 用戶交互後,彈出窗口中的imageView不會更新。
- 13. 我可以在iphone中生成位置訪問而不生成默認彈出窗口嗎?
- 14. 在WP8中打開彈出窗口時LongListSelector交互中斷
- 15. iOS:使用界面生成器生成彈出窗口,彈出窗口中的按鈕
- 16. 是否可以像UIWebView中的窗口一樣彈出一個彈出窗口?
- 17. obj-c中的依賴管理:pod可以相互依賴嗎?
- 18. 提交後彈出窗口
- 19. Flex彈出式管理器,在彈出窗口外彈出刪除彈出窗口
- 20. 我可以在引導彈出窗口中放置鏈接嗎?
- 21. 可以在彈出窗口中使用@media查詢嗎?
- 22. 我可以以編程方式添加iPad彈出窗口嗎?
- 23. 硒C#處理Windows窗體彈出窗口中硒C#
- 24. 如何使用selenide api集中並與彈出窗口進行交互
- 25. 如何與Selenium或Poltergeist的JavaScript彈出窗口交互?
- 26. 用戶交互後,後臺的Javascript彈出窗口
- 27. 使用多個交互式彈出窗口的影響
- 28. 禁用GtkTreeView的交互式搜索彈出窗口
- 29. Google+交互後的彈出窗口在0.5秒後消失
- 30. 關閉彈出窗口時可以刷新我的父窗口嗎?
我沒有使用-keyWindow,因爲通常你只有一個UIWindow,它在你的UIApplicationDelegate類中聲明,並且總是窗口在索引0而不是最頂層! –