当然,你可以这样做。
创建所有按钮后,从每个按钮控制拖动到下一个视图控制器并创建(例如)“推”segue。接下来,单击 segue 图形以选择 segue。切换到属性检查器并给 segue 一个标识符,如“All”或“Business”。您可以在您的-prepareForSegue:
方法中查看 segue 的标识符,以确定哪个 segue 导致了转换,从而确定要显示哪个类别。
不过,我不推荐这种方法。没有必要创建六个都做完全相同的事情的 segue。我会使用触发单个 segue 的操作:
将tag
每个按钮的属性设置为唯一值,以便您可以区分按钮。
向您的第一个视图控制器(管理按钮的控制器)添加一个操作方法,命名为-(IBAction)switchToCategoryFromButton:(id)sender
.
将所有按钮连接到该单个操作。
实现该操作,使其查看sender.tag
按下哪个按钮,使用该按钮确定要加载的类别,然后以编程方式触发一个到下一个视图控制器的 segue。
由一个动作触发一个单一的转场似乎比许多转场要整洁得多。执行此操作的代码可能如下所示:
- (IBAction)switchToCategory:(UIControl*)sender
{
// map the tapped button to a category
switch (sender.tag) {
case kAllButton: {
self.category = kAllCategories;
break;
}
case kBusinessButton: {
self.category = kBusinessCategory;
break;
}
default: {
self.category = kAllCategories;
break;
}
}
// start the segue
[self performSegueWithIdentifier:kCategorySegue sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// tell the destination view controller what category to display
if ([segue.identifier isEqualToString:kCategorySegue]) {
[(NextViewController*)segue.destinationViewController setCategory:self.category];
}
}