回答
您可以爲您的第一個視圖控制器存儲文本費爾德價值,只是在你的第二個視圖控制器創建第一個視圖控制器類的引用......然後你就可以訪問變量
通過創建一個創建全局變量一個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. 標籤設置爲一個視圖
- 2. 設置一個UIimage視圖等於另一個UIimage視圖
- 3. Android ConstraintLayout - 將一個視圖置於另一個視圖上
- 4. 將值從一個視圖傳遞到另一個視圖
- 5. 在標籤上滑動sholud將一個視圖移動到另一個視圖
- 6. 將視圖從一個視圖移動到另一個視圖
- 7. 另一個視圖的設置視圖沒有正確設置
- 8. 在另一個視圖上設置標籤以存儲NSDate
- 9. 從另一個視圖更新另一個視圖的標籤內容
- 10. 如何只爲一個視圖設置UINavigationController圖像,然後爲其餘視圖設置另一個圖像?
- 11. 在另一個視圖中設置NSURL。當前視圖的值爲零
- 12. 從一個視圖中獲取值並在另一個視圖中將元素設置爲yii
- 13. 從一個視圖設置圖像到另一個xcode 4.4
- 14. 如何將一個視圖移動到另一個視圖?
- 15. 將參數從一個視圖轉移到另一個視圖?
- 16. 將數組從一個視圖傳遞到另一個視圖
- 17. 用另一個視圖包裝一個標籤IOS
- 18. 如何將視圖置於React Native的另一個視圖中?
- 19. 如何從視圖中navigationcontroller更改爲一個視圖在一個標籤欄
- 20. 將文本值從一個視圖傳遞到另一個視圖
- 21. 如何將BOOL值從一個視圖傳遞到另一個視圖c
- 22. 將Firebase中的值從一個表視圖傳遞到另一個表視圖
- 23. 如何在Sencha Touch中將值一個視圖發送到另一個視圖?
- 24. 從另一個視圖訪問另一個視圖的內容
- 25. emberjs從另一個視圖轉到另一個視圖
- 26. 製作一個視圖「透視」另一個視圖
- 27. 如何將數組從一個視圖傳遞到另一個視圖內的另一個視圖
- 28. 將xib視圖初始化爲另一個NSView的子視圖
- 29. 如何將多個視圖的一個DataContext設置爲視圖模型
- 30. 對另一個視圖進行視圖