有人可以指出我正确的方向吗?我有一个带有多个按钮的视图控制器。我希望按下按钮来打开我自定义的一个表视图控制器并动态加载数据。我知道我可以为每次按下按钮制作多个表格视图控制器,但我认为必须有一种方法可以动态地做到这一点。让我明确一点,另一个视图将确定将哪些数据加载到表视图控制器中。我是 iOS 和 Objective-C 的新手,但不是编程新手,所以在火箭科学的答案上放轻松。如果您需要查看一些代码,请告诉我。
基本上,我在一个视图控制器上有 4 个按钮,按下时将确定要在表视图上加载哪些数据。现在让我们保持简单,只说数据是 4 个 NSMutable 数组。
编辑:根据 babygau 的帖子,这是我想出的:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"allCattleSegue"]) {
CattleTableViewController *controller = segue.destinationViewController;
controller.cattleArray = [[NSMutableArray alloc] initWithObjects:@"cattle1",@"cattle2",@"cattle3", nil];
}
else if ([segue.identifier isEqualToString:@"bullsSegue"]){
CattleTableViewController *controller = segue.destinationViewController;
controller.cattleArray = [[NSMutableArray alloc] initWithObjects:@"bull1",@"bull2",@"bull3", nil];
}
}
- (IBAction)allCattleTouchUpInside:(UIButton *)sender {
[self performSegueWithIdentifier:@"allCattleSegue" sender:self];
}
- (IBAction)bullsTouchUpInside:(UIButton *)sender {
[self performSegueWithIdentifier:@"bullsSegue" sender:self];
}
这样就完成了工作,但是现在当我按下后退按钮时,我的导航无法正常工作。它给了我一个空白屏幕。
更新:调试我看到它调用了 prepareForSegue 两次;一次将控制器作为发送者,再次将按钮作为发送者。仍在尝试了解其工作原理以及如何解决此导航问题。
已解决:显然我不需要连接动作(TouchUpInside)。感谢所有的帮助。