這是一個非常簡單的iPhone /可可問題。我有一個在兩個視圖之間轉換的按鈕。我使用界面構建器設置了大部分內容。當我點擊按鈕並顯示第二個視圖時,如何以編程方式更改按鈕的文本(例如,說'回')?訪問控制器中的界面生成器中創建的UI元素?
回答
您需要定義並連接「插座」。查看the documentation,記下「連接和綁定」部分。
在你的類聲明,聲明一個按鈕對象,並確保它被指定爲一個IBOutlet:
IBOutlet UIButton* myButton;
一旦您保存更改,如果你回到Interface Builder中,你應該可以看到這個出口當你右鍵點擊你的文件所有者時(假設你已經正確指定了文件所有者)。通過右擊拖動將此插座與屏幕上的UIButton相關聯。
現在屏幕上的對象與您的代碼內名稱相關聯。
徘徊無論你想改變的UIButton的文字,只是說:
[myButton setTitle:@"Back - or whatever else you want it to say"
forState: UIControlStateNormal ];
// you can set different title text for each state
// of the button (selected, active, or normal)
你需要建立一個出口爲IB:
@interface MyViewController : UIViewController {
IBOutlet UIButton *myButton;
}
保存,彈出IB,將文件的所有者設置爲MyViewController,然後從UIView和UIButton創建引用出口到Connections Inspector中文件所有者的適當點。
然後在執行,你可以這樣做:
[myButton setTitle:@"Back" forState:UIControlStateNormal];
如果你迷路與連接,我建議有一個看講義和視頻講座在http://www.stanford.edu/class/cs193p/cgi-bin/index.php,其進入一些細節關於iPhone基礎知識。
希望有所幫助。
或者,您可以爲控件分配一個唯一標記,並使用-[UIView viewWithTag:]
獲取指向控件的UIView
指針。在大多數情況下,網點是首選機制,但標籤在表格單元格等方面很有用。
到目前爲止,大多數帖子都專注於創建按鈕,並且非常正確。以下回答問題的其餘部分:
當我單擊按鈕並顯示第二個視圖時,如何以編程方式更改按鈕的文本(例如說'回')?
最簡單的方法,如果我正確理解你的情況,就是使用即插即用的UINavigationBarController。首先,你要你的第二個視圖控制器推到視圖棧:
// In firstViewController.m
self.navigationController = [[UIViewController alloc]initWithNibName:@"secondView" bundle:nil];
[self pushViewController:secondViewController animated:TRUE];
當顯示你的第二個視圖控制器,你應該自動獲得在導航欄的左側的後退按鈕。如果有必要改變後退按鈕的文字,你可以簡單地引用它,像這樣:
// In secondViewController.m
-(void)ViewWillAppear
{
[self.navigationItem.backBarButtonItem setText:@"GoBack"];
}
也有左,rightBarButtonItem(S),這是很方便的進行更復雜的導航。這是一個少插即用的場景:
// In secondViewController.h
-(IBAction)goBack; (this should appear as an action in your associated nib file)
// In secondViewController.m
-(void)viewDidLoad
{
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"GoBack" style:UIBarButtonItemStylePlain target:self action:@selector(goBack)];
}
-(IBAction)goBack
{
// logic to be done before going back
[self popViewControllerAnimated:secondViewController animated:TRUE];
}
所以,這是客觀的-c。它看起來很髒。 – jjnguy 2009-07-21 12:40:34
- 1. 如何在界面生成器中訪問UI元素的屬性
- 2. 在界面生成器中創建的標記控制
- 3. 訪問界面生成器
- 4. UI界面生成器c#
- 5. 如何在界面生成器中創建溢出xib的許多元素
- 6. 確定界面生成器中的UI元素的可用運行時屬性
- 7. UITable視圖界面生成器創建
- 8. iPhone創建uibarbutton無界面生成器
- 9. Xcode 4.3中的界面生成器的可訪問性
- 10. iphone:在接口生成器中創建元素的訪問代碼
- 11. 更改界面生成器中未創建的UIButton的文本
- 12. 使用界面生成器構建的自定義UIView可通過界面生成器訪問/定位
- 13. 在界面生成器中創建一個類似於優勝美地的UI
- 14. XCode和界面生成器問題:無法通過IBOutlet連接UI元素
- 15. 如何在界面生成器中創建UITableView中的隱藏單元格
- 16. 在界面生成器中創建的UIBarButtonItem不工作 - 困惑
- 17. 在界面生成器中創建的UIScrollView滾動出視圖
- 18. 在界面生成器中創建按鈕矩陣的麻煩
- 19. 如何在界面生成器中創建命名的顏色?
- 20. 在界面生成器中創建和使用框架中的定製視圖
- 21. rails中的控制器生成問題
- 22. 如何在Yii中訪問控制器中的表單元素
- 23. 在python中創建一個控制器進程的web界面
- 24. 無法訪問元素父控制器
- 25. 界面生成器可訪問性標籤跨越多個元素
- 26. 獲取控制器中無法訪問的元素的ID
- 27. 來自控制器的templateUrl中的訪問元素 - AngularJS
- 28. 界面生成器
- 29. 在引擎/控制器中註冊用戶界面元素
- 30. 在界面生成器中訪問animationDuration和animationRepeatCount
值得澄清,這不是一個對象,而是一個變量。該變量包含一個指向該對象的指針(一旦該筆尖已被加載)。我知道你知道這一點,但許多人把這混在一起,認爲變量是對象。 – 2009-07-20 22:51:02