0

Я тяну свои волосы на этом. У меня есть NavigationController с двумя уровнями TableViews. Каждый TableView находится в собственном файле NIB. Первый уровень просто отображает список. После выбора ячейки пользователь переходит на второй уровень TableView с более подробным списком. Именно на этом втором уровне TableView я хочу отобразить панель поиска (на самом деле я также использую SearchDisplayController). Я добавил его в TableView, потому что я хочу, чтобы SearchBar прокручивал таблицу.Файл NIB не отображается во время выполнения

Ниже я показываю два скриншота. Первый - это табличное представление второго уровня в InterfaceBuidler. Второй - это табличное представление второго уровня во время выполнения. По какой-то причине SearchBar не отображается во время выполнения.

Я попытался создать совершенно новый проект с нуля, и все происходит. Я не понимаю, почему SearchBar не отображается в NIB, нажатом на NavigationController.

Прежде, чем вы спросите, если я поместил SearchBar в TableView первого уровня, он отображается просто отлично. Да, я добавляю его к самому TableView, поэтому он является частью представления, которое должно отображаться.

Помощь! Что я делаю не так?

XIB File

Это то, что на самом деле отображается после XIB толкается ...

SearchBar Doesn't Display?

ответ

1

Хорошо, я должен ответить на свой вопрос. Я думал об этом, но, возможно, это могло помочь кому-то другому. Я действительно вытащил волосы на этом. Это было не из-за того, что я делал не так, как фундаментальное непонимание того, как работает iPhone.

В двух словах, проблема была с этой строки кода, который конкретизируется в TableViewController:

self.downloadDetailViewController = [[DownloadDetailTableViewController alloc] initWithStyle:UITableViewStyleGrouped]; 

При использовании XCode, чтобы создать новый класс, вы можете использовать следующее:

" Добавить -> New File -> Cocoa Touch класса -> UIViewController подкласс -> UITableViewController подкласс И с XIB для пользовательского интерфейса»

проблема в том, что СИБ не имеет абсолютно ничего общего с UITableViewCont пока вы не сообщите своему коду, чтобы использовать его. Для меня это похоже на ошибку в XCode или, по крайней мере, на что-то противоречащее. Когда среда разработки создает все три файла вместе, было бы разумно, что они будут работать вместе, но они этого не делают.

Вместо этого, решения изменить строку кода следующим образом:

self.downloadDetailViewController = [[DownloadDetailTableViewController alloc] initWithNibName:@"SecondaryView" bundle:[NSBundle mainBundle]]; 

Надеется, что это может помочь кому-то еще ...

0

Я думаю, что проблема в том, что вы добавляете SearchBar к Tableview, так что это не отображение.

Попытайтесь добавить этот searchBar без добавления к представлению таблицы, что означает перемещение вида таблицы вниз и добавление строки поиска в представление (а не представление таблицы).

+0

Спасибо, но это не делает то, что мне нужно. Я хочу, чтобы ScrollBar прокручивался с помощью TableView. Я протестировал это, и если TableView является основным видом для NavigationController, он показывает тонкие и свитки с таблицей. Но по какой-то причине одна и та же настройка в TableView, которая затем помещается в представление с помощью NavigationController, не отображает SearchBar. – jschmidt

0

Вы также можете установить свойство Nib Name на свой контроллер загрузки в подклассе Control Panel, на самом деле, и в сочетании с настройкой класса с вашим именем класса автоматически создайте представление для вас, и вам не придется вручную создать это.