2013-10-02 25 views
0

我在原型單元格中的故事板中定義了一個UISegmentedControl。嘗試將控件插入IBOutlet導致Xcode錯誤「無法編譯連接」。經過一番搜索之後,我發現這個錯誤信息是因爲IBOutlet無法以這種方式與原型單元一起使用。有沒有辦法通過連接到控件的IBAction的id參數來訪問UISegmentedControl *?我將有多個錶行,每行都包含自己的UISegmentedControl,所以我必須在IBAction中放入一些邏輯來區分它們。如何從原型單元連接UISegmentedControl?

+0

你有自定義表格視圖單元嗎?這是您嘗試設置IBOutlet的課程嗎? – Abizern

+0

是的,我有一個我的TableViewController故事板,包含兩個原型單元格,設置爲一個自定義類,我一直在嘗試連接IBOutlet。我試過把IBOutlet放入.h和@synthesizing以及放入.m但都失敗。將UISegementedControl連接到IBAction可以正常工作,但試圖將它連接到IBOutlet會導致上述錯誤。 – wufoo

回答

0

好吧,我沒有IBOutlet這個工作。我所要做的就是將每個UISegmentedControl的標籤設置爲某種獨特的編號,稍後可以在被觸摸時解析出這些編號。我在cellForRowAtIndexPath方法的UITableViewController .m文件中做了這個。 [mysegcontrol setTag:count];

然後我有線了一個IBAction爲到UISegmentedControl和方法中做了以下內容:

UISegmentedControl *usc = (UISegmentedControl *)sender; 
    NSInteger sidx = [usc selectedSegmentIndex]; 
    NSString *stxt = [usc titleForSegmentAtIndex:sidx]; 
    NSInteger tag = [usc tag]; 

    NSLog(@"control text %@ tag %d", stxt, tag); 

這樣一來,我可以使用switch語句或任何確定哪些UISegmentedControl是基於價值打的tag;