У меня есть приложения с контроллером навигации, когда пользователь находится в определенном виде. Он может коснуться scollview, и я хочу нажать rootViewController. Итак, у меня есть подклассы uiscrollview, и в методе «touchhesBegan» я хочу нажать на rootviewcontroller, но у меня нет доступа к контроллеру навигации! Как я могу это сделать?push view when touchhesBegan
ответ
В вашем подклассе UIScrollView создать две переменные экземпляра:
id delegate;
SEL touchAction;
Затем создают методы:
-(void)setTarget:(id)target andAction:(SEL)action {
delegate = target;
touchAction = action;
}
-(void)callAction {
if (delegate && [delegate respondsToSelector:touchAction]) {
[delegate performSelector:touchAction];
}
}
В вашем touchesBegan просто позвонить этот метод:
...
[self callAction];
...
В классе UIViewController создать метод:
-(void)myScrollViewTouchAction {
[self.navigationController pushViewController:myNewViewController animated:YES];
}
и, наконец, при создании экземпляра вашего UIScrollView подкласса, установить его цель и действие:
[myScrollView setTarget:self andAction:@selector(myScrollViewTouchAction)];
UIViewControllers имеют свойство «navigationController», поэтому вам просто нужно получить доступ к контроллеру вида рассматриваемого вида.
Однако, я обнаружил, что в развитии iphone прыжки через обручи, как это, являются признаком слабости в развитии. Например, для чего нужно, чтобы представление отображало представление CONTROLLER, чтобы что-то сделать. Это должно быть наоборот. При этом UIViewController является подклассом UIResponder, поэтому вы можете обрабатывать штрихи в контроллере. Тогда вы можете просто сказать.
[myViewController.navigationController pushViewController: анимированные:]
- 1. Push view from push notification
- 2. Git pull --rebase when push
- 3. Parse.com push data when available
- 4. View Div When A Hover
- 5. iPhone View Shifted When Run
- 6. push view navigation Sencha Touch
- 7. Nsdictionary Push details view
- 8. touchhesBegan @ multitask
- 9. iphone touchhesbegan
- 10. touchhesBegan EXC_BAD_ACCESS
- 11. Проблема с UEToolbar push view
- 12. Pop/push view под модальный
- 13. UISplitViewController's detail view push error
- 14. Update view угловой массив push
- 15. Tableview push to different view
- 16. UITableView push to multi view
- 17. Контроллер Push View, черный экран
- 18. Использование touchhesBegan & touchesEnded as Swipe
- 19. multi-touch touchhesBegan
- 20. Несколько объектов в touchhesbegan?
- 21. touchhesBegan: in UITableView
- 22. Использование touchhesBegan в Swift
- 23. Push To view controller from View не работает в swift
- 24. Push view animation на OS X
- 25. UINavigationController skip push current view controller
- 26. LinearLayout horizontal push view off screen
- 27. ComponentKit как контроллеры push view CKComponentController
- 28. Контроллер Push View из App Delegate
- 29. Swift View Push Notifications В приложении
- 30. Контроллер Push View в контроллер навигации
Я все эти вещи, но когда эта линию выполнена : [делегировать performSelector: touchAction], метод myScrollViewTouchAction не вызывается, в initwithnibname моего контроллера представления, я создаю экземпляр подкласса uiscrollview и вызываю setTarget .... – alex
Проблема в том, что когда я вызывал setTarget и когда ПрикосновениеBegan называется, i t не один и тот же объект, поэтому делегат не устанавливается, когда вызывается touchhesBegan ... – alex
, затем задайте цель и действие для нового объекта. – jamapag