我遇到了SplitViewController應用程序的問題。當我從主視圖中的表中選擇一行時,我將用替換segue替換詳細視圖。問題是每次發生這種情況時它會創建一個新實例/重新加載詳細視圖控制器。有沒有什麼辦法可以擁有它,所以如果它已經被實例化,它將用先前的實例替換細節視圖。我希望狀態能夠記住細節視圖,例如輸入到文本框中。替換segue創建新實例
1
A
回答
2
無法完成。一個SEGUE總是會創建一個視圖控制器
1
我用的是替代SEGUE,但在MasterVC我實現
-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
if ([identifier isEqualToString:@"showCalculatorViewController"]) {
if (self.splitViewController) {
NSObject *currentDetail = [self.splitViewController.viewControllers lastObject];
if ([currentDetail isKindOfClass:[RootCalcViewController class]]) {
....
然後我填寫現有VC的新特性,並返回NO。
但是我沒有UINAvigationController作爲我的初始Detail View控制器,因爲我處理的是masterVCs的導航。
此外,在AppDelegate中,didFinishLaunchingWithOptions需要設置正確的細節VC。生成的代碼假定它是一個UINavigationController。同樣在生成的MasterViewController中,viewDidLoad。這將爲您節省一些應用程序崩潰,如果你替換細節UINAvigationController。
當我加載不同的視圖控制器時,我讓「Replace segues」替換它們。
0
或者 - 你可以讓你的DetailController實現Singleton模式並將任何調用轉發給+ new,+ alloc或類似的東西給你的單例方法。
相關問題
- 1. segue創建視圖控制器swift的新實例
- 2. 創建KClass的新實例
- 3. 如何用新的Amazon EC2實例替換Amazon EC2實例?
- 4. 創建實例
- 5. 創建實例
- 6. 創建實例
- 7. 替換實例方法
- 8. ExecutorService - 在方法中創建新實例vs每個類創建一個實例
- 9. ADF - 創建會話bean的新實例
- 10. Kivy創建小工具的新實例
- 11. 創建新的數組實例
- 12. Castle Windsor重新創建實例
- 13. 如何創建記錄的新實例?
- 14. 獲取新創建的實例
- 15. 重新創建實體單例
- 16. 模擬最終的新實例創建?
- 17. 創建新的實例對象
- 18. 模擬新創建的實例?
- 19. 在Android中創建新類的實例
- 20. 在基類中重新創建實例
- 21. 添加架構或創建新實例?
- 22. 意圖打開URL創建新實例
- 23. AS3從藍圖創建新實例
- 24. 不創建新的Backgroundworker實例 - C#
- 25. 通用T - 創建新實例
- 26. 切換視圖控制器而不創建新實例
- 27. 創建新的泛型類型實例轉換爲根類型?
- 28. 基於現有實例創建類的新實例
- 29. StructureMap創建實例
- 30. 創建EC2實例
我剛剛開始與iPad故事板(包括拆分視圖控制器)一起工作,但是沒有可以使用替代替代的Push segue嗎?或者框架在這種情況下不允許Push?這適用於iPhone的成語。 – Rob 2012-04-03 19:14:21
我試圖推動,但決定我不想要後退導航。我記得每次都會創建一個新的實例。我有種解決它通過將每個細節ViewController聲明爲主ViewController上的一個屬性並在第一個segue上實例化它們。然後我不調用performSegue,而是手動推送/彈出實例到細節視圖。 – 2012-04-03 22:42:40
我也想知道如何使用替換segues。替代塞格和推塞格之間有什麼區別?如果替換的視圖控制器保留在內存中,那麼它如何被恢復? – Matt 2013-03-14 03:21:35