2012-06-18 1 views
3

В моем приложении у меня есть ParentViewController, в котором есть несколько элементов. Одним из элементов является UITableView.UIButton в UITableViewCell для выполнения Segue для другого UIViewController с использованием раскадровки

Я разработал ячейки таблицы с помощью ячейки динамического прототипа, которую я разработал в Раскадке.

Смысл, что у меня есть в Раскадке UIViewController; внутри него у меня есть UITableView; и внутри UITableView у меня есть прототип Cell.

Теперь я добавил UIButton внутри ячейки Prototype, создал другой UIViewController (назовем его ChildViewController) и подключил UIButton и ChildViewController в Раскадке с помощью Segue.

Как написать код, который активирует Segue, когда пользователь нажимает кнопку UIButton?

Мне удалось создать таблицу непосредственно и иметь данные внутри динамических ячеек (у них есть некоторые UILabels в сторону UIButton), но я не могу понять, как правильно подключить UIButton к коду.

Я не хочу использовать функции выбора «UITableView» по умолчанию, так как я хочу иметь несколько кнопок внутри динамических ячеек - каждый из них будет выводить другой сеанс другому ChildViewController.

ответ

1

Вот как я решил ту же проблему. Надеюсь, это поможет.

Чтобы сделать это, вы можете передать указатель на свой UITableViewController в метод инициализации вашей пользовательской ячейки, и хранить его там:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
      // ... 
      CDTrackCell *cell = [tableView dequeueReusableCellWithIdentifier:strCellTableIdentifier]; 
      CDTrack *currTrack = [self.fetchedResultsController objectAtIndexPath:indexPath]; 

      [cell configureView:currTrack inTableViewController:self]; 

      return cell; 
    } 

Сохранить указатель в пользовательском классе UITableViewCell:

- (void) configureView:(CDTrack*)track 
inTableViewController:(CDTracksViewController*)_tvc 
{ 
    self.tvc = _tvc; 
    // ... 
} 

Затем вы можете выполнить сеанс при нажатии кнопки:

- (IBAction)buttonAddToTracklistTapped:(UIButton *)sender { 
    [self.tvc performSegueWithIdentifier:@"showAddToTracklist" sender:self]; 
} 

Любые лучшие идеи?

+0

Еще один отличный способ сделать это - использовать шаблон «делегировать», я собираюсь попробовать его прямо сейчас :) –

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

  • Нет связанных вопросов^_^