Нажатие кнопки не работает в iOS - PullRequest
0 голосов
/ 31 мая 2018

Я строю ANE, который запустит новый вид, который содержит метку и кнопку.Мне удалось добавить представление как контроллер связки и представления в мой файл .a.

Я начинаю свое представление как подпредставление.И позже, когда я нажимаю кнопку, он должен сделать некоторые вещи и изменить текст метки.Я могу отобразить вид, используя приведенный ниже код, но мое событие нажатия кнопки не работает.

--- Код для начала просмотра ---

Имя моего класса ViewController - VideoViewController.и пакет, содержащий имя xib: 'ViewBundle.bundle'

UIApplication *app = [UIApplication sharedApplication];

UIViewController *myViewController;



NSBundle * mainBundle = [NSBundle mainBundle];

NSString * pathToMyBundle = [mainBundle pathForResource:@"ViewBundle" ofType:@"bundle"];

NSAssert(pathToMyBundle, @"bundle not found", nil);

NSBundle *bundle = [NSBundle bundleWithPath:pathToMyBundle];

myViewController = [[VideoViewController alloc] initWithNibName:nil bundle:bundle];



[app.keyWindow addSubview:myViewController.view];

--- VideoViewController.h ---

#import <UIKit/UIKit.h>



@interface VideoViewController : UIViewController



@property (strong, nonatomic) IBOutlet UILabel *textLabel;

@property (strong, nonatomic) IBOutlet UIButton *clickBtn;

- (IBAction)BtnTapped:(id)sender;

- (IBAction)BtnTappped:(UIButton *)sender;



@end

--- VideoViewController.m ---

#import "VideoViewController.h"



@interface VideoViewController ()



@end



@implementation VideoViewController



#pragma mark - UIViewController



- (void)viewDidLoad {

    [super viewDidLoad];



    [self logMessage:@"From did load"];

    [_clickBtn setUserInteractionEnabled:YES];

    [_clickBtn setTitle:@"Click Here" forState:UIControlStateNormal]; // button text changes here

}



#pragma mark - Public



- (IBAction)BtnTapped:(id)sender {

    [_textLabel setText:@"Btn Tapped"];

}



- (IBAction)BtnTappped:(UIButton *)sender {

    [_textLabel setText:@"Btn Tappped"];

}



#pragma mark - Private



- (void)logMessage:(NSString *)msg {

    NSLog(@"%@", msg);

    [_textLabel setText:msg];

}



@end

Я пытался создать событие касания программно, но событие нажатия кнопки все равно не работает.

Может кто-нибудь помочь решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Проблема была с инициализацией представления.Замените [app.keyWindow addSubview:myViewController.view]; на [app.keyWindow.rootViewController presentViewController:myViewController animated:false completion:nil];, решив мою проблему.

0 голосов
/ 31 мая 2018

Пожалуйста, убедитесь, что кнопка clickButton находится в режиме superView

...