繁体   English   中英

第二个视图控制器中的UIButton - Touch Up Inside不工作(Touch Down)

[英]UIButton in second View Controller - Touch Up Inside not working (Touch Down does)

我在XCode中创建了一个新项目,并使用新的Storyboard功能创建了两个不同的View Controller。

第一个View Controller附加到主文件( ViewController.h,Viewcontroller.m )。 第二个View Controller附加到它自己的.h / .m文件集( NewUserController.m / .h

现在解决我在过去几个小时内找不到解决方案的问题;

我在第二个视图控制器中添加了一个按钮,并将该按钮附加到IBAction( verifyNumber )。 当我附上' Touched Up Inside '事件时,IBAction永远不会被解雇。 但是,当我附加“ Touch Down ”时,一切正常。

两个View Controller都选择了“启用了用户交互”,除了按钮,第二个视图控制器不包含任何其他元素。 另外,我的手动performSegueWithIdentifier也有效(从view1切换到view2)。

谁能发现错误地方?

编码:

ViewController.m

- (void)firstStartup {

    // Future use for getting userID

    // Switch to loginview
    [self performSegueWithIdentifier:@"segueLogin" sender:self];       

}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    // Fire firstStartup
    [self firstStartup];

}

NewUserController.h

#import <UIKit/UIKit.h>

@interface NewUserController : UIViewController
@property (weak, nonatomic) IBOutlet UITextField *inputNumber;

- (IBAction)backgroundTap;
//- (IBAction)verifyNumber;

- (IBAction)verifyNumber:(id)sender;

@end

NewUserController.m

#import "NewUserController.h"

@implementation NewUserController
@synthesize inputNumber;


// Collect User data & Start Request
- (IBAction)verifyNumber:(id)sender; {

    inputNumber.text = @"testing";

}

- (IBAction)backgroundTap {

    [inputNumber resignFirstResponder];    

}

UPDATE

由于NJones的响应,我已经测试了一些,并删除了我在第二个视图中出现的手势识别器。 删除此识别器后,UIButton可以处理所有事件(触摸内部)。

识别器是否以某种方式阻止了任何“轻击”事件来覆盖对象(例如UIButton)?

我有几点想法,

1)为什么你有:

    - (IBAction)backgroundTap;
    //- (IBAction)verifyNumber;

    - (IBAction)verifyNumber:(id)sender;

verifyNumberverifyNumber:(id)sender之间有区别,它们可以同时存在,并且都可以连接在nib

2)您是否在视图上使用了任何UIGestureRecoginzers?

3)此按钮是UIButton的自定义按钮还是子类?

4)(我真的不认为这会帮助解决您的问题,这只是个好习惯,而且我已经在键入了:))使用view属性检查是否调用了一个方法充其量也没有定论。 尝试在IBAction方法中添加一个日志语句,如:

- (IBAction)verifyNumber:(id)sender; {
    NSLog(@"verifyNumber:");
    inputNumber.text = @"testing";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM