У меня есть UIViewController
, который я хочу отобразить UIView
, который отображается в виде меню. Это меню будет содержать несколько кнопок. Я хотел повторно использовать это меню в нескольких разных местах в своем приложении, поэтому я решил создать класс с именем ViewFactory
, который имеет метод, который возвращает UIView
с этими кнопками.UIButtons не работает на программно созданный UIView
На мой ViewController
Я вызываю этот метод и получаю возвращаемый UIView
и добавляю его в качестве подзаголовка.
Это работает просто отлично. Я вижу вид и все его кнопки, однако кнопки не реагируют на какие-либо события касания. Не уверен, почему это так и любопытно узнать, что я делаю неправильно.
Вот мой код ViewFactoryClass
:
- (UIView *) addCloseRow
{
// UIView container for everything else.
UIView *navRow = [[UIView alloc] initWithFrame:CGRectMake(0,225,350,45)];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.userInteractionEnabled = YES;
[navRow addSubview:button];
[button addTarget:self action:@selector(closeButtonTouchDownEvent) forControlEvents: UIControlEventTouchDown];
navRow.userInteractionEnabled = YES;
return navRow;
}
В моем главном NavigationController
классе здесь, как я звоню и получаю UIView
:
ViewFactory *factory = [[ViewFactory alloc] init];
[self.navigationController.navigationBar addSubview:[factory MainNavigationUIView]];
Опять же, UIView
показывает вверх, но кнопки никогда не реагируют ни на что.
Это зафиксировал его Anoop! При обновлении моего метода для передачи в объекте я смог нажать кнопку. После обновления метода я вернулся к моему NavigationViewController и прошел в классе следующим образом: '[self.navigationController.navigationBar addSubview: [factory MainNavigationUIView: self]];' – Flea