나는 UIViewController
이고 서브 뷰는 UIView
입니다. UIViewController
에 UIView
의 특정 작업에 대한 알림 (또는 수신 대기)을 보내고 싶습니다. 이 작업을 수행하는 표준 방법은 무엇입니까? 그냥 액션 핸들러를 갖고 싶어UIViewController에게 서브 뷰에서 발생한 일에 대해 알릴 때
답변
: 액션 메시지
– sendAction:to:forEvent:
– sendActionsForControlEvents:
– addTarget:action:forControlEvents:
– removeTarget:action:forControlEvents:
– actionsForTarget:forControlEvent:
– allTargets
– allControlEvents
준비 및 전송
: 추가 정보를 위해
- (void)viewDidLoad { [super viewDidLoad]; // ...... UIButton *myButton = [[UIButton alloc] init]; // or initWithSOMETHING [myButton addTarget:self action:@selector(someMethod:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:myButton]; [myButton release]; // ...... } - (void)someMethod:(id)sender { if (![sender isKindOfClass:[UIButton class]]) return; // Do something about the action here... }
을의
UIControl
Documentation 참조 당신의 부모 뷰 컨트롤러를 호출하는 뷰 컨트롤러에 대해 이야기하는 경우은 또는, 당신은 "부모"뷰 컨트롤러에 액세스 할
UIViewController
의presentingViewController
속성을 사용할 수 있습니다UIViewController *parentVC = [self presentingViewController]; [parentVC setSomething:self.withSomething];
presentingViewController
을 -보기를 이 뷰 컨트롤러를 제공하는 컨트롤러. 읽기 전용
@property(nonatomic, readonly) UIViewController *presentingViewController
토론가
이 속성의 디폴트 구현은이 뷰 컨트롤러부터보기 계층을 걷는다. 첫 번째보기 컨트롤러에서presentViewController:animated:completion:
메서드를 수신했거나definesPresentationContext
속성을YES
으로 설정하면 해당 속성의 값이 으로 반환됩니다. 이 반환 할 값을 찾거나 루트보기 컨트롤러에 도달 할 때까지 계속 계층 구조를 따라갑니다.
아니면
UIView
의superview
특성 :
superview
- 수신기의 수퍼, 아니면 아무것도가없는 경우는 전무. (읽기 전용)[self.view.superview doSomething];
@property(nonatomic, readonly) UIView *superview
위의 의견에 답변을 바탕으로,이 버튼을 눌러 즉, "표준"방법은 UIControl의 메커니즘을 사용하는 것입니다. 방법 myViewController에서 실행되는 : 그래서, 당신은 "myButton에"를 누르면
[myButton addTarget:myViewController action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
할 프로그램, 경우 "의 buttonPressed"가 발생합니다. Interface Builder를 사용하여 연결을 만들 수도 있습니다.
이 코드는 여러 위치 (UIView, UIViewController)에 넣을 수 있으며 결과적으로 변수의 정확한 이름이 변경되지만 버튼을 눌러야 처리 할 수 있습니다. 가장 쉬운 방법.
- 1. 서브 뷰에서 컨트롤러 푸시
- 2. 서브 뷰에서 CGContextRef 가져 오기
- 3. 제스처가 서브 뷰에서 인식되지 않습니다.
- 4. reloadData를 수행 할 때 고스트 서브 뷰에서 UITableViewCell 문제가 발생했습니다.
- 5. C++는 내가하고 싶은 일에 대해 온라인
- 6. 수퍼 뷰에서 서브 뷰의 위치를 찾는 것
- 7. 서브 뷰에서 뷰를 추가/제거 할 때 애니메이션보기
- 8. 큰 서브 뷰에서 다른 작은 서브 뷰에 맞추기
- 9. 슈퍼 뷰에서 서브 뷰 수를 계산하는 방법
- 10. 서브 뷰에서 뷰를 삭제해도 willRemoveSubview가 호출되지 않습니다.
- 11. DynamicMethod에 대해 발생한 코드에서 InvalidProgramException을 디버깅하는 방법
- 12. 서브 뷰에서 탭 막대 컨트롤러를 숨기기
- 13. 변경 사항에 대해 QAbstractItemModel의 서브 클래스에 알리기
- 14. JSF 서브 뷰에서 HTML과 JSF를 혼합하십시오.
- 15. 메인 uiview 서브 뷰에서 click 이벤트를받습니다.
- 16. uiview의 서브 뷰에서 thouch 이벤트 처리하기
- 17. 서브 뷰에 추가 된 뷰에서 터치를받는 방법
- 18. Howto는 백본 서브 뷰에서 클릭 이벤트를 바인딩합니다.
- 19. iPhone - UITableViewCell의 서브 뷰에서 접촉 감지
- 20. 서브 뷰에서 시작된 터치를 수신하도록 UIGestureRecognizer 만들기
- 21. 아이폰 : 서브 뷰에서 힘이 appdidfinishlaunch에서 자체
- 22. 서브 클래스 생성자에 대해 super?
- 23. 메시지를 보낼 때 사용자에게 알릴 수있는 방법
- 24. , 덕분에 나는 그런 일에 대해 들어 본 적이없는
- 25. 비활성화 일에 대해 jquery datepicker 날짜의 유효 기간을 확인하십시오.
- 26. FLOT 동적으로 내가이 일에 대해 적어도 대여섯 다른 질문을 읽었습니다
- 27. 갤러리에 ScrollView에서 발생하는 터치 이벤트에 대해 어떻게 알릴 수 있습니까?
- 28. Ajax.ActionLink()에서 발생한 요청에 대해 Request.IsMvcAjaxRequest() 메소드가 true를 반환합니까?
- 29. 터치 이벤트를 UIScrollView의 서브 뷰에서 superview로 전달하는 방법
- 30. 어떻게하면 메인 뷰에서 iphone의 서브 뷰로 선을 그릴 수 있습니까?
어떤 종류의 작업입니까? 버튼 누름? 속성의 가치 변화가 있습니까? –
물론 버튼을 눌러도 작동합니다. – SundayMonday