2012-06-08 2 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

Смежные вопросы