我有一個應用程序,它具有充當視圖控制器的主視圖。這個主視圖上有3個按鈕。我有3個子視圖,我可以通過3個按鈕控制這個主視圖。每個子視圖都有一個按鈕。當按下此按鈕時,我希望它禁用主視圖上的3個按鈕,直到再次按下該按鈕。有沒有辦法在視圖之間發送消息來禁用按鈕?如何將消息發送到不同視圖的按鈕?
0
A
回答
0
使用NSNotifications發佈按鈕被按下的通知。
[[NSNotificationCenter defaultCenter] postNotificationName:@"Button1Pressed" object:self userInfo:info];
然後添加觀察者,以便他們監聽這些通知。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(buttonPress:) name:@"Button1Pressed" object:nil];
現在實行buttonPress
閱讀HERE的NSNotification手動和學會使用它。
1
這聽起來像是切換到我。更像一個設置。如果你想一想,這應該在NSUserDefaults
。而當你特定的視圖來了,大概在viewWillAppear:
或viewDidAppear:
,爲此,
BOOL controlsEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"ControlsEnabledKey"];
button1.enabled = controlsEnabled;
button2.enabled = controlsEnabled;
button3.enabled = controlsEnabled;
要節省按下按鈕的價值,
BOOL controlsEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"ControlsEnabledKey"];
[[NSUserDefaults standardUserDefaults] setBool:!controlsEnabled forKey:@"ControlsEnabledKey"];
[[NSUserDefaults standardUserDefaults] synchronize];
注由於boolForKey:
將返回NO
如果找不到密鑰,我建議您在應用程序啓動時將值設置爲YES
,如果您希望在啓動時啓用控件。
0
將主視圖/控制器設置爲內部視圖的代表,定義一個協議,在該協議中定義一個方法,例如toggleMainButtons
,使VC符合該協議並實現該消息。在按鈕上,addTarget:self.delegate action:@selector(toggleMainButtons) forControlEvents:UIControlEventTouchUpInside
。
相關問題
- 1. 將消息發送到不同線程
- 2. Eclipse如何將消息發送到視圖?
- 3. 按下按鈕時發送消息
- 4. 向UnityWndClass發送「按鈕按下」消息
- 5. 如何將WM_CHAR消息發送到Firefox
- 6. 發送按鈕錯誤消息轉義
- 7. 如何將消息發送到TOPIC然後發送到MDB?
- 8. 如何發送消息到視圖ajax-like
- 9. 如何將消息發送到我的視圖控制器實例?
- 10. 如何將消息發送到SCDF中的兩個不同的輸出通道?
- 11. 如何根據消息中的值將元組發送到不同的螺栓
- 12. IOS如何使用按鈕發送消息?
- 13. 當用戶點擊視圖中的提交按鈕時,將消息發送到xcode中的電話號碼
- 14. JMS消息生產者不會將消息發送到隊列
- 15. 不同按鈕的不同視圖iPhone
- 16. 不發送消息
- 17. 發送消息給android設備,它將消息發送回Android Wear,但收到消息時從不會觸發
- 18. 我按消息發送後不顯示我的消息
- 19. 設計傳入的消息不同於發送的消息
- 20. 使用主視圖中的按鈕選擇將URL發送到詳細信息視圖
- 21. 如何在Xcode中使用單個發送按鈕單擊將不同的短消息發送給不同的人?
- 22. 如何發送消息到Android主題
- 23. 如何將消息從ESB的主題發送到消息代理的隊列
- 24. 我如何發送消息?
- 25. Vertx事件總線不能發送消息到不同的Verticle
- 26. 在Cocoa,UIResponder中發送子視圖到superview的消息?
- 27. 如何使用django通用視圖發送成功消息
- 28. 如何發送不同的SMS消息給多個收件人
- 29. 如何通過MSMQ發送不同類型的消息?
- 30. 如何發送消息從xmpp中的不同帳戶
好的,我試圖理解這一點。請耐心等待,我對Objective C相當陌生。在我的主視圖中,在viewDidLoad中,我放置了觀察者(如上所示)和removeObserver。在3個子視圖中的一箇中,我將postNotification放置在buttonPress方法中。我沒有收到任何警告或錯誤,但是當我按下按鈕時什麼都沒有發生。有任何想法嗎? – tombuarts 2011-06-17 23:41:33
好的,我想出了我的錯誤。我在錯誤的地方刪除了Observer。我把它移到(void)dealloc中,它很好用。非常感謝您的幫助。 – tombuarts 2011-06-18 00:30:16