Передать строку из tableviewcontroller в viewcontroller в стеке навигации - PullRequest
0 голосов
/ 24 мая 2010

Как мне передать строку в контроллер представления, который выдвигается при выборе ячейки tableview.Должен ли я создать собственный метод init в контроллере представления?Например, [[myvc alloc]initWithURL:...] Установить свойство?например [myvc setURL:...] или myvc.url = ... или просто создать собственный метод?[myvc setLoadingURL:...]

Ответы [ 2 ]

0 голосов
/ 24 мая 2010

Мы фактически сделали это в обоих направлениях (с помощью init и свойства). Я нашел это свойство лучшим методом, потому что пользовательский метод init может не вызываться, если ViewController создан InterfaceBuilder. Со свойством вы всегда должны установить его, если хотите использовать его.

Всего $ 0,02,
-дан

0 голосов
/ 24 мая 2010

Любое из этих решений будет приемлемым. Я думаю, что если вы просто передадите ему одну строку, этого свойства будет достаточно. Я сохранял методы инициализации для более сложных объектов. Вот одна из тех, которые я недавно сделал для таблицы «рекордов», в которой при нажатии на строку отображается профиль в стеке:

ProfileController *profileController = [[ProfileController alloc] initWithNibName:@"ProfileController" bundle:nil];
// pass the controller the player object
[profileController showProfile:player];
// show it by pusing it on the stack
[self pushViewController:profileController animated:YES];
[profileController release];

Я мог бы создать другой инициализатор, такой как

ProfileController *profileController = [[ProfileController alloc] initWithPlayer:player];

вместо этого. Это выглядит немного элегантнее, но, как я уже сказал, подойдет любой из ваших подходов.

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