2010-01-12 48 views
1

我在應用程序中有一個視圖。該視圖包含UITableView和UIToolbar,並在UIToolbar中有UISegmentedControl包含在UIBarButtonItem對象中。如何將插座連接到UIToolbar中的UISegmentedControl

我可以得到分段控件鏈接到一個IBAction事件,然後它作用於值的變化,但我看不出如何添加一個IBOutlet到這個項目。

當我嘗試添加此鏈接時,似乎要接受插座鏈接的唯一對象是tableview。我希望這是想要進入文件的所有者的出路。

我在這裏錯過了什麼?

+0

你的IBOutlet的類型是什麼?你如何嘗試連接它? – Vladimir 2010-01-12 12:15:57

+0

我試着將它設置爲UISegmentedControl,UIBarItem和UIBarButtonItem。他們似乎都沒有觸發文件所有者的迴應。 在嘗試連接時,我首先保存.h文件,然後嘗試將對象上的Add New Outlet指示器中的行拖回到Interface Builder對象瀏覽器窗口中的各個項目。 – Redback 2010-01-12 12:23:54

回答

0

實際上,問題原來是視圖未正確分配,並且使用無效的子類。這是阻止文件的所有者允許我看到IBOutlets - 它已經在.h文件中正確指定。

只要我糾正類層次結構,問題就消失了。

非常感謝您的幫助。

+0

您應該點擊此答案旁邊的複選標記,以便系統知道問題已得到解答。 – TechZen 2010-01-12 19:32:27

+0

是的,我知道,但是當我幾天前去做時,系統不會讓我這麼做,告訴我需要再等兩天才能允許我這樣做。 現在完成了。歡呼,並感謝提醒。 – Redback 2010-01-18 06:19:18

0

你的問題不清楚。

如果您試圖向分段控件添加插座,即從分段控件運行到另一個對象的插座,則必須使用添加的插座屬性對分段控件進行子類化。出口是指向外部對象的指針,所以類必須爲指針分配內存併爲其創建一個符號。

如果您嘗試將文件所有者的出口連接到分段控件,但看不到文件所有者的出口屬性作爲選擇,則您(1)已在File Owners類中錯誤地定義出口或(2)不將文件所有者設置爲正確的類。

對於(1),在你的文件所有者類,你應該有一些看起來像這樣:

@property (nonatomic, retain) IBOutlet UISegmentedControl *mySegmentedControl; //best 

@property id mySegmentedControl; //works but is sloppy unless the flexibility is required 

對於(2)在Interface Builder中,查看檢查在標識面板中,檢查是否將適當的類分配給了文件所有者。

+0

第一個樣本(1)是正確的,但(2)不正確。它應該是@property id mySegmentedControl; (否*)。 – 2010-01-12 14:36:46

+0

哈,是的,即使在這麼多年之後,我總是會把我絆倒。我不能用我認識的東西來打敗這個習慣。 – TechZen 2010-01-12 19:31:08