所以我在Xcode中有一個應用程序,它有一個主視圖控制器和一個設置視圖控制器。我想在設置視圖中有一個分段視圖,觸發主視圖上的操作。設置視圖控制器連接到它自己的類「settingsviewcontroller.h」,視圖控制器連接到它自己的類「viewcontroller.h」。那麼,我該如何做到這一點?我想要一個按鈕在不同的視圖中觸發一個動作
回答
一種方法是定義一個協議:
SettingsDelegate.h:
@protocol SettingsDelegate
- (void)settingsUpdated:(NSDictionary *)newSettings
@end
包括用在您的視圖控制器的這一頭。讓viewController符合這個協議。建立從設置控制器到視圖控制器的弱參考,例如
SettingsViewController.m:
@interface SettingsViewController()
@property (readwrite, weak) id<SettingsDelegate> settingsDelegate;
@end
當settingscontroller被實例化,設置self.settingsDelegate
到ViewController。假設您創建從視圖 - 控制的settingscontroller,這將是這樣的:
viewController.m:
SettingsController *settingsController = [[SettingsController alloc] init];
settingsController.settingsDelegate = self;
// present the settingsController
在設置控制器,當設置被更新:
if (self.settingsDelegate) {
NSDictionary *newSettings = ...; // set this value
[self.settingsDelegate settingsUpdated:newSettings];
}
有關更多詳細信息,請參閱Apple的使用協議:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithProtocols/WorkingwithProtocols.html
*通過我不知道這是否是正確的,在所有
第一種方式:
嘗試做的 - (IBAction爲)...連接。我知道他們是不同的看法,但是也許你仍然可以從不同的響應者那裏得到連接。
第二種方式:
嘗試導入的.h/.m文件,這樣就可以從其他類訪問不同的變量等等
我已經嘗試了這兩件事。第一個根本不起作用,它沒有任何意義。第二個是有道理的,但在我做完之後沒有發生任何事情。我認爲你必須這樣做,然後做其他事情,但我不知道什麼 – msweet168
你想讓按鈕觸發的動作是什麼? – user2779450
分段視圖控制器的一側是mph,另一側是kmh,並且當它在mph上視圖控制器中的標籤顯示爲mph時,更改輸出的公式將更改爲使輸出mph和km做同樣的事情,但爲kmh。 – msweet168
- 1. 添加一個UILabel作爲UIButton的子視圖不會觸發按鈕動作
- 2. 如何讓一個按鈕在jQuery中觸發多個動作?
- 3. 我想在循環中的不同點觸發一個響應
- 4. 如何在列表視圖(Android)中觸發一個按鈕?
- 5. 觸發一個按鈕
- 6. 觸發一個按鈕WPF
- 7. JavaFX在按下按鈕時觸發一個動作
- 8. 想要在列表視圖中添加兩個浮動按鈕
- 9. HTML/Javascript:從1個按鈕觸發2個不同動作
- 10. 我想要一個按鈕來觸發使用jquery/JavaScript的鏈接
- 11. Ruby on rails:觸發同一控制器的另一個動作的按鈕
- 12. 我在一個佈局中有三個按鈕,我想顯示不同的視圖
- 13. 我需要一個按鈕來執行一個動作,但不會觸發驗證或刷新頁面(JSF 2.0)
- 14. 在一個動作中觀察多個視圖的觸動
- 15. 按鈕在一個滾動型的TableView不會觸發
- 16. 我需要能夠按一個按鈕發出一個報價
- 17. 我的滾動視圖中的最後一個按鈕無法註冊觸摸
- 18. 我想打一個視圖
- 19. 我想在同一個列表視圖中充氣兩個xml
- 20. 我有一個按鈕,其背景我想要在Android
- 21. ios觸摸從一個按鈕移動到另一個按鈕
- 22. 我想在javascript中製作一個簡單的切換按鈕
- 23. 在視圖中添加一個按鈕
- 24. 我想在wordpress中硬編碼一個'隨機發布'按鈕
- 25. 我想問一下在不同的佈局你的一個按鈕
- 26. 想要下一個和上一個按鈕在我的YTPlayerView,而鎖定iPhone
- 27. 只需點擊一個按鈕即可顯示視圖。只要我點擊按鈕,視圖移動在左邊
- 28. 觸發從一個視圖到另一個視圖的事件
- 29. 在C#中指定時間點擊一個按鈕的自動觸發按鈕#
- 30. 兩個onClick函數在一個按鈕中,想要發生一個接一個的點擊函數
雖然我沒有設置代理.h。那是什麼。我是否必須製作類似於第二個應用程序delegate.h的東西? – msweet168
不,你只需要創建一個新的.h文件沒有相應的.m文件。您在新的.h文件中需要的是** SettingsDelegate.h **下的三行。 – bneely
如果需要,我可以爲您創建一個示例Xcode項目。 – bneely