IBAction没有注册按钮点击

时间:2014-04-17 02:11:31

标签: ios objective-c segue ibaction

我希望- (IBAction)nextButton:(id)sender中的代码在我点击下一个按钮时运行,但是点击它似乎没有注册。

我确保nextButton已连接到父控制器(SearchViewController),并且我有两个segues通向两个辅助视图控制器。

它所分割的视图控制器取决于函数返回的值。

我认为问题在于我如何构建函数,或者我如何布置segue。

#import "SearchViewController.h"

@interface SearchViewController ()
@property (weak, nonatomic) IBOutlet UITextField *itemSearch;
@property (weak, nonatomic) IBOutlet UIButton *nextButton;

@end

@implementation SearchViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}




- (IBAction)nextButton:(id)sender
{
    if (self.itemSearch.text.length > 0) {
        [PFCloud callFunctionInBackground:@"eBayCategorySearch"
                           withParameters:@{@"item": self.itemSearch.text}
                                    block:^(NSString *result, NSError *error) {
                                        if (!error) {
                                            NSLog(@"The result is '%@'", result);

                                            if ([result intValue] == 1) {
                                                [self performSegueWithIdentifier:@"ShowMatchCenterSegue" sender:self];
                                            } else {
                                                [self performSegueWithIdentifier:@"ShowCriteriaSegue" sender:self];
                                            }
                                        }
                                    }];
    }
}

enter image description here

3 个答案:

答案 0 :(得分:1)

我能想到的唯一问题是,虽然按钮可能连接到searchViewController, - (IBAction)nextButton:(id)发送者可能没有分配给按钮。 在searchViewController中试试这个: 首先,在其头文件中,将nextButtonOutlet添加为IBOutlet。然后在.m文件中,写

[self.nextButtonOutlet addTarget:self action:@selector(nextButton:) forControlEvents:UIControlEventTouchUpInside];

看看这是否有效。

编辑:在viewDidLoad方法中编写该行代码。

答案 1 :(得分:0)

试试这个......

第1步:为按钮

创建IBOutlet
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.nextButtonOutlet addTarget:self action:@selector(nextButton:) forControlEvents:UIControlEventTouchUpInside];    
}

第2步:按钮操作

- (IBAction)nextButton:(id)sender
{
    NSLog(@"Button Clicked");
    //-- Your code implementation
}

答案 2 :(得分:0)

断开segue与按钮本身的连接,并在两个ViewControllers之间建立连接。另外,给segue本身一个标识符。