UITutViewCell中的UIButton使用Storyboard对另一个UIViewController执行搜索

时间:2012-06-18 10:04:38

标签: ios5 uitableview uibutton uistoryboardsegue

在我的App中,我有一个ParentViewController,里面有几个元素。其中一个元素是UITableView。

我使用我在故事板中设计的动态原型单元设计了表格的单元格。

意思是,我在故事板中有一个UIViewController;在里面我有一个UITableView;在UITableView里面我有一个Prototype Cell。

现在,我在Prototype Cell中添加了一个UIButton,创建了另一个UIViewController(让我们称之为ChildViewController)并将故事板中的UIButton和ChildViewController与Segue连接。

当用户点击UIButton时,我该如何编写激活Segue的代码?

我设法自己创建表并在Dynamic Cells中包含数据(他们在UIButton旁边有一些UILabel),但我无法弄清楚如何正确地将UIButton连接到代码。

我不想使用UITableView默认的“select”功能,因为我希望在Dynamic Cells中有几个按钮 - 每个按钮都会派生出一个不同的segue到另一个ChildViewController。

1 个答案:

答案 0 :(得分: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;
    // ...
}

然后,您可以在点击按钮时执行segue:

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

有更好的想法吗?