目标C触摸一次后如何禁用按钮

时间:2014-10-26 19:09:36

标签: ios objective-c

我正在创建一个基于iBeacon的应用程序,但是当用户添加新信标并按下save时,屏幕需要一秒钟才能加载回主viewController。如果用户多次按下保存,则会使信号不止一次添加。触摸后是否有办法停用按钮以避免此问题?

- (IBAction)saveTag:(id)sender
{
    PFObject *newTag = [PFObject objectWithClassName:@"Tag"];

    newTag[@"Name"] = self.tagName.text;
    newTag[@"UUID"] = self.selectedBeacon.proximityUUID.UUIDString;
    newTag[@"Major"] = self.selectedBeacon.major;
    newTag[@"Minor"] = self.selectedBeacon.minor;                   

    if ([self.tagName.text isEqualToString:@""]) {

        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Artemis" message:@"Cannot save tag without name" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];

    } else {

        PFQuery *query = [PFQuery queryWithClassName:@"Tag"];
        [query whereKey:(@"UUID") equalTo:self.selectedBeacon.proximityUUID.UUIDString];
        [query whereKey:(@"Major") equalTo:self.selectedBeacon.major];
        [query whereKey:(@"Minor") equalTo:self.selectedBeacon.minor];

       [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
           if (!error) {
               NSLog(@"No errors found!");
    }

3 个答案:

答案 0 :(得分:3)

在这里回答:How do I disable a UIButton?

self.buttonName.enabled = NO;

答案 1 :(得分:0)

文档对于这样的事情非常有帮助。诀窍是看看你感兴趣的班级和它的祖先班级。

在这种情况下,启用的属性是祖先类UIControl的属性。

当你在Xcode文档中搜索像UIButton这样的类时,你会在顶部的概述中看到一行"继承自",以及一个祖先类的列表。

首先查看您正在查看的类的方法和属性,然后单击直接的祖先类并阅读有关ITS方法和属性的信息。有时,您之后使用的方法可能是在祖父母班级中,甚至可能在班级层次结构中。

(忏悔:自2007年初以来,我一直在使用Objective C / Cocoa / Cocoa触摸编程,而且我仍然有时忘记查看课程'我正在寻找的方法的祖先类。)

答案 2 :(得分:-2)

您可以通过将enabled属性设置为NO来禁用所有UIButton实例。

self.cancelButton.enabled = NO;
相关问题