2016-04-07 2 views
2

Прямой вопрос:программно нажмите UIButton быстрое

Как программно нажать на UIButton в Swift 2.0?

Пример: UIButton.tap()

Объяснение, почему я не могу назвать кнопку функции щелчка непосредственно:

Я в настоящее время используется AKSwiftSlideMenu (https://github.com/ashishkakkad8/AKSwiftSlideMenu) (https://www.cocoacontrols.com/controls/akswiftslidemenu) для создания меню. Это достигается добавлением контроллера меню в основной контроллер представления в виде дочернего представления.

let menuVC : BackTableViewController = self.storyboard!.instantiateViewControllerWithIdentifier("backTableViewController") as! BackTableViewController 
    menuVC.btnMenu = sender 

    self.view.addSubview(menuVC.view) 
    self.addChildViewController(menuVC) 

Как вы можете видеть, btnMenu, который является UIButton, в настоящее время передается в menuVC. Наличие одной и той же кнопки на обоих контроллерах разрешений позволяет использовать одну функцию onSlideMenuButtonPressed(sender : UIButton) в контроллере домашнего вида для обработки презентации menuVC. Один из вариантов в меню, которое я создаю, - кнопка «Выход», которая представляет UIAlertViewController, которые спрашивают, хочет ли пользователь выйти. Ниже мой код для моего «Да» кнопки обработчика в menuVC:

 logOutAlert.addAction(UIAlertAction(title:"Yes", style: .Default, handler: { action in 
     self.btnMenu.touchInside 
     CURRENT_USER.unauth() 
     NSUserDefaults.standardUserDefaults().setValue(nil, forKey: "uid") 
     print("User logged out") 
     CurrentUser.checkIfUserIsLoggedIn() 
    })) 

Я пытающийся нажать на кнопку с помощью метода touchInside (который не является правильной, конечно), чтобы распускать menuVC. Есть ли такая вещь, как эквивалент UIButton.tap() или способ доступа к функции btnMenuonSlideMenuButtonPressed(sender : UIButton)?

Side Примечание: я играл с идеей создания объекта homeViewControllerDelegate для menuVC вызвать onSlideMenuButtonPressed(sender : UIButton) непосредственно, которые могли бы работать, но это, кажется, как кружным путем, видя, как btnMenu уже имеет ссылку эта функция.

ответ

6

вы пробовали:

myAutomatedButton.sendActionsForControlEvents(.TouchUpInside) 

Это, как представляется, предыдущий вопрос и возможный дубликат, но пост я нашел: how to programmatically fake a touch event to a UIButton?

+0

да это сработало! Большое спасибо! –

+0

Супер. Рад, что смог помочь. –

+0

i m также используя этот код, но не работает –

Смежные вопросы