#iphone
#iPhone
Вопрос:
Теперь я хочу обратиться к таблице, но в моем файле .h нет переменной, поскольку она не требовалась при первоначальном создании. Таблица отлично работает, ее можно добавлять / отображать / etc.
Я попытался добавить «myTable» в файл .h, а затем связать в IB (таблица была связана с «view», и я мог / выбрал «myTable»), но моя первая попытка не сработала, и я боялся испортить мое (несколько) рабочее приложение 😉
Надеюсь, вопрос имеет смысл!!!
спасибо!
Ответ №1:
Просто используйте
IBOutlet UITableView * myTableView;
в вашем файле .h, то есть файле объявления.Теперь вы можете получить доступ к MyTableView в IB.Теперь вы можете создать объект для этого TableView.
Ответ №2:
Если я вас правильно понял, вы хотите связать таблицу со своим кодом. Если это так, то в вашем заголовочном файле вам нужно добавить свойство, подобное so
@property(неатомный, сохранить) IBOutlet UITableView *myTable;
А затем синтезировать ее в вашем файле .m следующим образом
@synthesize myTable;
Как только вы это сделаете, вы сможете связать ее в Interface Builder. Но имейте в виду, что если вы хотите дополнительно заполнять таблицу / взаимодействовать с ней, вам нужно указать источник данных / делегировать вашу таблицу владельцу вашего файла. Вот руководство о том, как это сделать — http://www.switchonthecode.com/tutorials/how-to-create-and-populate-a-uitableview
Отвечает ли это на ваш вопрос?
Комментарии:
1. Спасибо! Я знал, что не слишком хорошо это объясняю… После прочтения всех предложений я добавил имя переменной, а затем связал «Outlet» в IB с новой переменной «MyTableView». Раньше, когда я пытался использовать IB, я удалял «view» «Outlet» в IB, поскольку я не понимал, почему я хотел бы, чтобы оба («view» и «MyTableView») указывали на «Table View» (все еще нет), но, похоже, это работает. В моем представлении .xib просто есть «Table View» / «UITableView». Я не могу точно вспомнить, как я ее изначально создавал, но это был самый простой вариант, поскольку я всего лишь новичок во всем этом…
Ответ №3:
Если ваш контроллер является a UITableViewController
, просто используйте его tableView
свойство.
Ответ №4:
Вопрос не совсем имеет смысл, потому что неясно, что означает «таблица отлично работает …», если у вас нет никаких ссылок на нее в вашем файле .h. Я предположу, что у вас действительно есть iVar класса UITableView, который определен как IBAction, и вы внедрили протоколы источника данных табличного представления и делегирования в свою реализацию контроллера представления. Если у вас ее нет, то таблица не сможет отображать какие-либо данные.
Во-первых, если у вас определен iVar, вы можете просто обратиться к iVar напрямую. Если вы предпочитаете свойство, вы можете его создать.
Если ваш контроллер просмотра является UITableViewController, вам не нужно ничего делать, свойство tableView
уже определено для вас, и вы можете ссылаться на таблицу с помощью tableView
свойства.
Если вашим контроллером представления является что-то другое, вы можете создать свойство следующим образом в своем файле .h:
@property (nonatomic, retain) UITableView * myTableView;
и в вашем .m
@synthesize myTableView;
Затем вы можете ссылаться на свой TableView с помощью:
self.myTableView;
Замените myTableView
на имя вашего TableView iVar
. Если вам нужно подключить ваш TableView в IB к свойству MyTableView, то вместо этого определите свойство как:
@property (nonatomic, retain) IBOutlet UITableView * myTableView;
Как только вы это сделаете, отредактируйте свой пользовательский интерфейс в IB и подключите выход TableView к myTableView
свойству. Вам также нужно будет назначить источник данных TableView и правильно делегировать. Это немного выходит за рамки вашего вопроса. В руководстве Apple по программированию контроллера табличного представления есть отличные документы по этому вопросу.
Комментарии:
1. Спасибо! Я знал, что не слишком хорошо это объясняю… После прочтения всех предложений я добавил имя переменной, а затем связал «Outlet» в IB с новой переменной «MyTableView». Раньше, когда я пытался использовать IB, я удалял «view» «Outlet» в IB, поскольку я не понимал, почему я хотел бы, чтобы оба («view» и «MyTableView») указывали на «Table View» (все еще нет), но, похоже, это работает. В моем представлении .xib просто есть «Table View» / «UITableView». Я не могу точно вспомнить, как я ее изначально создавал, но это был самый простой вариант, поскольку я всего лишь новичок во всем этом…