Ios 如何使用prepareForSegue从UIButton传递字符串
我将一个字符串从UIButton发送到下一个UITableViewController,该字符串是UIButton标题(星期一…星期日)。NSPredicate使用该字符串按天筛选我的表信息Ios 如何使用prepareForSegue从UIButton传递字符串,ios,uibutton,uitableview,segue,Ios,Uibutton,Uitableview,Segue,我将一个字符串从UIButton发送到下一个UITableViewController,该字符串是UIButton标题(星期一…星期日)。NSPredicate使用该字符串按天筛选我的表信息 @property (nonatomic, weak) NSString *dayOTW; 然后转到我的下一个屏幕 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Make sure your segu
@property (nonatomic, weak) NSString *dayOTW;
然后转到我的下一个屏幕
- (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中分离出来
谢谢在iAction方法之前调用segue,因此第一次单击变量时不会设置该变量 如果segue连接到您的按钮,那么它将是prepareforsgue中的
发送者
,因此您实际上不需要操作方法。只需在prepareForSegue中获取标题:
UIButton *dayButton = (UIButton*)sender
vc.dayOTW = sender.titleLabel.text;
要将同一个序列连接到所有按钮,必须按ctrl键从每个按钮拖动,但为所有序列指定相同的标识符。这在情节提要上看起来很混乱,因此另一种方法是直接从源代码视图控制器创建一个单独的segue,并在操作方法中(在本例中,您需要该方法,并将连接到所有按钮)调用performsguewithidentifier:sender:
:
-(IBAction)dayButtonPressed:(UIButton*)sender
{
[self performSegueWithIdentifier:@"SendWeekDay" sender:sender];
}
然后将按钮作为发送方传递给
performsgue
方法,这样您就可以使用上面列出的代码 segue在iAction方法之前被调用,因此第一次单击时不会设置该变量
如果segue连接到您的按钮,那么它将是prepareforsgue中的发送者
,因此您实际上不需要操作方法。只需在prepareForSegue中获取标题:
UIButton *dayButton = (UIButton*)sender
vc.dayOTW = sender.titleLabel.text;
要将同一个序列连接到所有按钮,必须按ctrl键从每个按钮拖动,但为所有序列指定相同的标识符。这在情节提要上看起来很混乱,因此另一种方法是直接从源代码视图控制器创建一个单独的segue,并在操作方法中(在本例中,您需要该方法,并将连接到所有按钮)调用performsguewithidentifier:sender:
:
-(IBAction)dayButtonPressed:(UIButton*)sender
{
[self performSegueWithIdentifier:@"SendWeekDay" sender:sender];
}
然后将按钮作为发送方传递给
performsgue
方法,这样您就可以使用上面列出的代码 你能编辑你的问题标题使其更具体吗?请参阅此答案:你能编辑你的问题标题使其更具体吗?请参阅此答案:我如何检查是否已首先调用该序列?或者我需要先初始化字符串吗?我稍后会尝试。如果您愿意,可以在每个方法中添加一个日志,但我的回答是,您不需要字符串变量-该按钮在prepareForSegue中用作发送者,因此只需从该按钮获取文本。现在,当我单击该按钮时,我收到了此错误。”2012-05-01 11:41:33.097 passingdata[23451:fb03]嵌套推送动画可能导致导航栏损坏2012-05-01 11:41:33.455 passingdata[23451:fb03]在意外状态下完成导航转换。导航栏子视图树可能已损坏。2012-05-01 11:41:33.457 passingdata[23451:fb03]开始/结束外观转换的不平衡调用。“它正在传递信息,但创建了一个额外的视图。我需要单击“上一步”两次才能访问我的rootviewController,有什么想法吗?”。谢谢你还没有一个segue连接到按钮上,是吗(所以它会执行两次segue)?除此之外,我不确定-你应该问一个新问题。。它是相连的。。非常感谢您的帮助。我怎样才能先检查是否已呼叫segue?或者我需要先初始化字符串吗?我稍后会尝试。如果您愿意,可以在每个方法中添加一个日志,但我的回答是,您不需要字符串变量-该按钮在prepareForSegue中用作发送者,因此只需从该按钮获取文本。现在,当我单击该按钮时,我收到了此错误。”2012-05-01 11:41:33.097 passingdata[23451:fb03]嵌套推送动画可能导致导航栏损坏2012-05-01 11:41:33.455 passingdata[23451:fb03]在意外状态下完成导航转换。导航栏子视图树可能已损坏。2012-05-01 11:41:33.457 passingdata[23451:fb03]开始/结束外观转换的不平衡调用。“它正在传递信息,但创建了一个额外的视图。我需要单击“上一步”两次才能访问我的rootviewController,有什么想法吗?”。谢谢你还没有一个segue连接到按钮上,是吗(所以它会执行两次segue)?除此之外,我不确定-你应该问一个新问题。。它是相连的。。非常感谢你的帮助