2012-08-01 49 views
2

即時創建一個應用程序,目前有6個視圖控制器,現在在視圖控制器6我有一個文本字段,當他們編輯它,它需要編輯視圖控制器3中的標籤,我如何鏈接在viewcontroller6中聲明的插座.h在故事板中的視圖控制器3中的東西?我知道它很複雜,但任何幫助都會非常棒! :)謝謝如何在視圖控制器之間鏈接插座?

回答

0

我已經回答過這個類似的問題:

例子:Delegates

快速回答是,您不能真正將vc6中的插座「鏈接」到vc3中的某個插座,就像您在IB中使用控制拖拽一樣。完成你想要的最好的方法是使用委託模式,我在鏈接問題中概述了這一點。

它需要一些額外的工作,但這是一個非常重要的技能。

+0

@Yar我鏈接的答案包括如何與代表一起使用故事板。 – Dustin 2012-08-01 12:13:33

+0

@yar你是對的,我只是把整個問題聯繫起來,因爲其他答案也很好。 – Dustin 2012-08-01 17:36:57

1

您無法將故事板中的vc6插座連接到vc3。有多種方式將數據傳遞從VC6到VC3:

  1. 使用委託模式(如達斯汀提到的)到文本字段數據傳遞從VC6到VC3。但是,如果您的視圖控制器從vc3到vc4到vc5到vc6是按順序鏈接的,那麼使用這種方法可能很乏味。

  2. 使用共享實例(單例)。我使用here的代碼。如果你有相當多的數據需要傳遞,我會推薦這種方法。

  3. 使用NSUserDefault記住文本框數據,並在vc3中顯示標籤時,使用[NSUserDefaults standardUserDefaults]讀回值。很好,如果你只有很少的數據可以傳遞。這種方法的另一個優點是您可以記住下次啓動的這些數據,並且可以在將vc6中的文本字段顯示給用戶輸入之前正確顯示vc3中的標籤。

+0

4.發佈NSNotification! – 2012-08-01 05:45:11

1

首先,在你的viewcontroller6中,你需要#import「viewcontroller3.h」。 然後在viewcontroller6.m中,您可以創建viewcontroller3的一個實例。然後您可以訪問所有viewcontroller3的數據。您可以在viewcontroller6.m的viewcontroller3實例中設置數據,並推送到viewcontroller3的視圖,並且您的數據應該在那裏。

雖然如果它是一個標籤,您可能需要在您的viewcontroller3.h中創建NSString * stringText的屬性,然後在您的viewcontroller3.m文件中將其合成,然後在視圖controller6中將該字符串設置爲聲明的插座值在viewcontroller6中。並且在將它推送到視圖控制器3之後。在view controller3的viewdidload()中執行類似label.text = stringText的操作;

所以,現在,您在viewcontroller3中的標籤應該更新爲stringText中的任何內容..這是從viewcontroller6中設置的。

相關問題