回答
您可以爲您的第一個視圖控制器存儲文本費爾德價值,只是在你的第二個視圖控制器創建第一個視圖控制器類的引用......然後你就可以訪問變量
通過創建一個創建全局變量一個ivar可以引用一個特定的類型,比如標籤或其他視圖控制器,你可以把所有不需要耦合的東西結合在一起。你可以做的是讓你的第一個標籤視圖控制器成爲你的第二個標籤視圖控制器的代表。所以在你的應用代理中做這樣的事情。
OptionsViewController *optionsViewController = // ... get this from the tab view
FirsTabViewController *firstTabViewController = // ... same here
[optionsViewController setDelegate:firsTabViewController];
,這意味着你需要在你的OptionsViewController伊娃:當你想要觸發這種改變發生在你的選擇瀏覽器,查看代理人是否可以應對任何事件
@property (assign) id delegate;
然後,一個你已經命名的選擇器。例如:
- (void)someEventHappenedLikeTyping:(id)sender;
{
if ([delegate respondsToSelector:@selector(setOptionsString:)]
[delegate performSelector:@selector(setOptionsString:) withObject:[label text]];
}
請注意,您從未指定過任何特定的對象類型。你只需檢查委託(是否聲明爲id)是否可以響應該選擇器。如果可以的話,它會按照它所說的去做,否則就會保持沉默。
對於這個工作,你需要在你的FirstTabViewController的optionsString伊娃,所以它會在頭被聲明爲:
@property (copy) NSString *optionsString;
,然後在.M @synthesize它。這會導致-setOptionsString成爲將在-someEventHappenedLikeTyping方法中調用的有效選擇器。無論如何,現在,如果你需要改變哪個視圖控制器引用哪個,你不必進入頭部並且改變引用的ivar的類型。您只需在作爲選項視圖控制器代表的視圖控制器中實現選擇器(順便提一句,這稱爲非正式協議)。
只是一些思考的食物。希望有所幫助。在我添加的代碼中可以做進一步的分離,但是對於這樣一個簡單的任務來說,這又可能是過度的。讓我知道你是否需要澄清或者想通過進一步解耦來理解我的意思。
此致敬禮
p.s.有時需要在兩個標籤欄視圖控制器之間共享數據,意味着您有設計缺陷。如果你想要存儲的偏好從你的選擇來看,你應該叫
[[NSUserDefaults standardUserDefaults] setObject:[label text] forKey:@"option1"];
[[NSUserDefaults standardUserDefaults] synchronize];
然後你可以從後面NSUserDefaults的使用您的主選項卡拉;
NSString *option1 = [[NSUserDefaults standardUserDefaults] objectForKey:@"option1"];
//使用選項1東西
- 1. Android ConstraintLayout - 將一個視圖置於另一個視圖上
- 2. 將值從一個視圖傳遞到另一個視圖
- 3. 將視圖從一個視圖移動到另一個視圖
- 4. 在另一個視圖上設置標籤以存儲NSDate
- 5. 在另一個視圖中設置NSURL。當前視圖的值爲零
- 6. 從一個視圖中獲取值並在另一個視圖中將元素設置爲yii
- 7. 將參數從一個視圖轉移到另一個視圖?
- 8. 如何將一個視圖移動到另一個視圖?
- 9. 將數組從一個視圖傳遞到另一個視圖
- 10. 用另一個視圖包裝一個標籤IOS
- 11. 將文本值從一個視圖傳遞到另一個視圖
- 12. 將Firebase中的值從一個表視圖傳遞到另一個表視圖
- 13. 如何在Sencha Touch中將值一個視圖發送到另一個視圖?
- 14. 製作一個視圖「透視」另一個視圖
- 15. 如何將數組從一個視圖傳遞到另一個視圖內的另一個視圖
- 16. 用另一個視圖替換視圖
- 17. 從另一個視圖調用視圖
- 18. 從另一個視圖呈現視圖
- 19. 從另一個視圖更新視圖
- 20. OBJC視圖替換另一個視圖
- 21. 將UITextView的文本從一個視圖更改爲另一個視圖
- 22. 我將如何顯示一個視圖作爲另一個視圖的疊加?
- 23. 將同一個手勢中的一個視圖拖到另一個視圖
- 24. 作爲另一個視圖的子視圖添加視圖的位置
- 25. 如何將一個值設置爲一個圖標?
- 26. 如何在另一個類中設置視圖的插座值
- 27. 離子2標籤重置視圖,當點擊另一個標籤
- 28. 將圖像從一個滾動視圖拖到另一個滾動視圖
- 29. 將標籤的內容從一個視圖控制器傳輸到另一個視圖控制器
- 30. Android將多個適配器設置爲一個列表視圖