gpt4 book ai didi

ios - 如何使用 prepareForSegue 从 UIButton 传递字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:50:09 25 4
gpt4 key购买 nike

我从 UIButton 发送一个字符串到我的下一个 UITtableviewcontroller,该字符串是 UIButton 标题(星期一 ... 星期日)该字符串被 NSPredicate 使用以按天过滤我的表信息。

@property (nonatomic, weak) NSString *dayOTW;

- (IBAction)selectDay:(UIButton *)sender {
UIButton *dayW = sender;
dayOTW = dayW.titleLabel.text;
NSLog(@"button press = %@", dayOTW);
}

2012-05-01 06:23:21.731 passingdata[99957:fb03] button press = Monday

然后转到我的下一个屏幕

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"SendWeekDay"])
{
// Get reference to the destination view controller
ViewController *vc = [segue destinationViewController];

// Pass any objects to the view controller here, like...
vc.dayOTW = dayOTW;
}
}

我第一次选择该按钮时,我的表格中没有显示任何信息,如果我返回并再次选择该按钮,我的表格会显示当天的正确信息。

我做错了什么?

还有一个与上述相关的问题。我有 7 个 UIButtons,一周中的每一天一个,如何通过一个 segue 从所有 UIButtons 中分离出来?

谢谢

最佳答案

segue 在您的 IBAction 方法之前被调用,因此您第一次单击它时不会设置该变量。

如果 segue 连接到您的按钮,那么它将是 prepareForSegue 中的 sender,因此您实际上并不需要 action 方法。只需在 prepareForSegue 中获取标题即可:

UIButton *dayButton = (UIButton*)sender
vc.dayOTW = sender.titleLabel.text;

要将相同的 segue 连接到所有按钮,您必须从每个按钮按住 ctrl 并拖动,但为所有 segues 提供相同的标识符。这在 Storyboard上看起来很乱,所以另一种方法是直接从源 View Controller 创建一个 segue,并在操作方法中(在这种情况下你需要它,并将连接到你所有的按钮)调用 performSegueWithIdentifier:发件人::

-(IBAction)dayButtonPressed:(UIButton*)sender
{
[self performSegueWithIdentifier:@"SendWeekDay" sender:sender];
}

这会将按钮作为发送方传递给 performSegue 方法,因此您可以使用上面概述的代码。

关于ios - 如何使用 prepareForSegue 从 UIButton 传递字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10393937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com