UITableView и делегаты - PullRequest
       2

UITableView и делегаты

0 голосов
/ 16 июня 2011

У меня есть приложение для iPad в процессе разработки, но мне трудно поймать выбор строки в представлении таблицы.Я знаю, что это потому, что я еще не определил своего делегата должным образом, но после 2 часов в сети это все еще не имеет особого смысла.То, что я пытаюсь сделать, это передать выбранный элемент строки таблицы в новое представление, которое отображает информацию на основе выбора - довольно стандартно.Я настроил подкласс tableViewController, используя опцию, чтобы создать его как подкласс UITableViewController, который, если я не ошибаюсь, автоматически включает делегаты (UITableViewDelegate и UITableViewDataSource).

В методе didSelectRowsAtIndex, который я пытаюсь создатьDetailViewController.Я пробовал с nib-файлом и создавал его чисто в коде, но класс никогда не создавался.Я пропускаю шаг, я уверен в этом, но я не могу найти, что это.В какой-то момент я не должен определить, к какой функции я хочу получить доступ с выбранной строки?Но где?Как?

В том, что я считал своей лучшей попыткой, я создал DetailViewController, установил строковую переменную в detailViewController для выбранной строки, а затем попытался добавить представление detailViewController для отображения.Я подумал, что затем смогу использовать viewDidload для вызова следующей функции, но представление так и не отображалось на экране.

Было бы неплохо иметь некоторые базовые рекомендации.Или неплохой учебник был бы хорош.Не звоните, чтобы прочитать соответствующие документы, пожалуйста, я прошел через это, и сейчас мне нужен пример, чтобы собрать вещи.Спасибо, Стив

Ответы [ 3 ]

0 голосов
/ 16 июня 2011

Я думаю, что вам не хватает этой строки в вашем didSelectRowAtIndexPath: методе

[self presentModalViewController:controller animated:YES];

, где контроллер - это объект класса DetailViewController

0 голосов
/ 16 июня 2011

Попробуйте это,

это идет в didSelectRowAtIndexPath

 MoreInfoTable *moreInfoView = [[MoreInfoTable alloc] initWithStyle:UITableViewStyleGrouped];
//in the MoreInfoTable, make properties like titles etc.
[self.navigationController pushViewController:moreInfoView animated:YES];
[moreInfoView release]; 
}

вот пример MoreInfoTable.h

   @interface MoreInfoTable : UITableViewController {
NSMutableArray *moreInfo;
NSURL *getDirections;
NSURL *getWebsite;
NSMutableString *getPhoneNumber;
NSString *address;
NSString *footer;
float lat, lon;


}
-(void)goToWebsite;
-(void)goToMaps;
-(IBAction)addToFavorites:(id)sender;
-(void) callNumber;
@property (nonatomic,retain) NSURL *getDirections;
@property (nonatomic,retain) NSURL *getWebsite;
@property (nonatomic,retain) NSMutableString *getPhoneNumber;
@property (nonatomic,retain) NSString *footer;
@property (nonatomic,retain) NSString *address;
@property (readwrite) float lat;
@property (readwrite) float lon;
@end

Теперь вернемся в другой файл, в котором вы объявите таблицу, вы можете сказать

MoreInfoTable *moreInfoView = [[MoreInfoTable alloc] initWithStyle:UITableViewStyleGrouped];
//in the MoreInfoTable, make properties like titles etc.
moreInfoView.title = @"TITLE!";
//etc. 
[self.navigationController pushViewController:moreInfoView animated:YES];
[moreInfoView release];  //
0 голосов
/ 16 июня 2011

Да, возможно, вставьте фрагмент кода, будет легче выяснить, что здесь происходит.И правильно ли эти методы делегата (didSelectRowAtIndexPath :) вызываются?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...