2011-11-06 70 views
0

我有一個奇怪的情況。我希望用戶通過單擊UIScrollView中的按鈕來選擇一個類別。這裏的頁面視圖控制器的相關代碼(含的UIScrollView的一個與IB制):UIScrollView自定義ViewController

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    uiScroll.contentSize = CGSizeMake([[SawData shared].categories count]*320,480); 
    int i = 0; 
    for (NSString* key in [SawData shared].categories) { 
     Baton *b = [[Baton alloc] initWithNibName:@"Baton" bundle:nil]; 
     b.view.frame = CGRectMake(i++*320, 0, 320, 480); 
     [uiScroll addSubview:b.view]; 
     [b release]; 
    } 
} 

巴吞魯是包含與打印使用的NSLog一些日誌信息潤色作用只有一個按鈕,新的UIViewController子類。通過這段代碼,我可以並排安排好巴頓。問題在於點擊該按鈕時會釋放出警棍視圖控制器的EXC_BAD_ACCESS。

如果我刪除[b版本];行我有覆蓋其中一個比其他作爲我++ * 320是相同的結果(我檢查和它的正確)。在這種情況下點擊按鈕正在工作。

謝謝你的幫忙!

的iOS SDK 4.3

編輯1: 大量的試驗和錯誤後,我設法找出發生了什麼。它的320px寬度的控件。如果我將它們改爲321或319,它們應該如此。我不需要釋放控制器來圖像填充UIScrollView內容,並單擊按鈕的作品。這到底是什麼?

回答

0

這可能是原因。

Baton *b = [[Baton alloc] initWithNibName:@"Baton" bundle:nil] autorelease]; 

你還應該確保UIButton在你點擊它之前被初始化。您可以使用調試器輕鬆完成此操作。

看看這裏

Does UIView's addSubview really retain the view?

+0

我很抱歉,但是這並沒有幫助。 – zveljkovic

相關問題