2012-06-08 36 views
0

所以我不明白爲什麼這個非常簡單的UITableView部分繪圖不正確,其次當我試圖從屏幕上滾動這個吸盤它會引發隨機錯誤,有時bad_access和其他如此突出的綠色錯誤。UITableView部分繪圖不正確/ EXC_Bad_Access當滾動屏幕

這是設備上發生了什麼的圖片,下面是我在appDelegate中首先使用的代碼創建tableview單元格的代碼。由於

在的appDelegate

SignUp *signup = [[SignUp alloc] initWithNibName:@"SignUp" bundle:nil]; 
signup.view.frame = self.window.frame; 

[self.window addSubview:signup.view]; 
[self.window makeKeyAndVisible]; 

要創建的TableView

static NSString *CellIdentifier = @"EditableCell"; 

    EditableCell *editableCell = (EditableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (editableCell == nil) { 

     editableCell = [[EditableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 

    UITextField *cellTextField = [editableCell textFieldCell]; 

    cellTextField.keyboardType = UIKeyboardTypeDefault; 
    cellTextField.delegate = self; 


    return editableCell; 

的錯誤:enter image description here

回答

1

你創建你的視圖控制器,但從來沒有舉行到它上面與任何東西。只要您的didFinishLaunchingWithOptions方法退出,您將失去視圖控制器並遇到內存問題。保持視圖控制器視圖不保留在視圖控制器上。除了直接添加視圖到窗口使用的:

self.window.rootViewController = signup; 

這都將採取視圖的所有權,並應設置它的框架,使您不必手動進行。您當前將框架設置爲窗口的同一框架,並將其放在狀態欄下方。

+0

你,先生,是一個真正的朋友。非常感謝。不過,如果您不介意,我還有其他一個問題:此視圖旨在爲應用程序臨時註冊/登錄視圖。一旦這個人註冊,我想關閉這個視圖,並在不同的導航控制器中顯示我的下一個視圖堆棧。我會在哪裏添加代碼來做到這一點?它會在SignUp中引用appDelegate嗎?再次,非常感謝。 – Apollo

+0

沒問題。如果這個視圖只是暫時的,我個人的偏好是將您的根視圖控制器設置爲您提到的永久導航堆棧,然後以模態方式呈現註冊視圖控制器。然後,當用戶完成時,他們會獲得一個很好的動畫,從屏幕底部滑出來揭示應用程序。 – sc0rp10n

+0

是的,這是有道理的。好吧,你一直很有幫助,再次感謝! – Apollo