xcode ios将动作连接到动作场景上的按钮

时间:2014-05-11 23:50:02

标签: ios uibutton uiactionsheet

我是iOS开发的初学者。我正在尝试编写一个简单的应用程序,它有两个可能的结果与一个按钮相关联,具体取决于特定字段的变量。

当用户按下我的应用程序上的Walk按钮并且状态(变量)为Jumping时,会出现一个动作场景。

如果状态为Jumping且用户按下Walk,则会根据以下代码段弹出以下场景:

- (IBAction)walk:(id)sender {
if ([_personState.text  isEqual:  @"Jumping"])
{
    UIActionSheet *actionsheet = [[UIActionSheet alloc]
                                  initWithTitle:@"Invalid Action - Force?"
                                  delegate:self
                                  cancelButtonTitle:@"Cancel"
                                  destructiveButtonTitle:nil
                                  otherButtonTitles:@"Force", nil];
    [actionsheet showInView:self.view];
}
else {_personState.text =  @“Walking";}

}

当我点击Force时,personState不会更新为Walking。

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if ([_personState.text isEqual: @"Jumping"] && buttonIndex == 0)
{
    _personState.text =  @"Walking";
}

我的if语句不正确吗?或者我又犯了一个错误?

2 个答案:

答案 0 :(得分:0)

您正在使用isEqual:,但我认为您希望改为使用isEqualToString:

isEqual比较指针,而isEqualToString比较字符串的值。

答案 1 :(得分:0)

学习调试,让您的生活更轻松。

在actionSheet中放置一个断点:clickedButtonAtIndex:

在Xcode类型

底部的调试区域中
po _personState.text

然后输入

p buttonIndex 

po =打印对象

p = print primitive

您甚至无需键入只需将鼠标悬停在变量上,它就会显示值