你好我怎麼能在當前視圖中調用當前視圖的superview的viewcontroller中實現的方法? 你能幫我嗎? thanxiphone sdk - 調用視圖的superview的viewcontroller的方法
3
A
回答
4
您能增加一個功能 - (空)initWithView:(EchiquierDisplayView *)aSuperview或類似的東西,在你的
@interface pieceDraggableImageView : UIImageView {
CGPoint startLocation;
CGPoint startLocationInView;
EchiquierDisplayView *theSuperview;
}
@property (nonatomic, retain) EchiquierDisplayView *theSuperview;
-(void)correctDestinationPosition;
-(void)initWithView:(EchiquierDisplayView *)aSuperview;
...
-(void)askSuperview;
@end
@implementation pieceDraggableImageView
...
-(void)initWithView:(EchiquierDisplayView *)aSuperview
{
theSuperview = aSuperview;
}
...
-(void) correctDestinationPosition
{
[theSuperview correctIt];
}
現在一定要落實在上海華功能correctIt定義的參考。 希望我理解你的問題吧...
4
UIViews沒有他們的視圖控制器的知識。您需要創建一個自定義的UIView子類,該子類維護對一個(或可能多於一個)視圖控制器的引用,儘管這樣做會引入UIView和UIViewController之間的進一步耦合。
您應該考慮在superview或view的類中實現該方法,而不是在視圖控制器中實現它。
7
通常這是通過代表完成的。
讓您的視圖界面定義一個協議和對某個委託的引用。然後讓你的父視圖控制器實現這個協議。
然後上級這樣做:
someView.fooDelegate = self;
,那麼該視圖會做這樣的事情:
if(self.fooDelegate != nil) {
if([fooDelegate respondsToSelector:...]) {
[fooDelegate performSelector:...];
}
}
這不是編的,但我覺得你得到的要點。
1
這裏是另一種方式:
SuperviewsViewController *controller = self.superview.nextResponder;
if (controller && [controller isKindOfClass:[SuperviewsViewController class]])
{
[controller method];
}
應該在大多數情況下工作。
相關問題
- 1. 子視圖調用superview的方法中的觸摸
- 2. 從視圖的子視圖調用ViewController的方法?
- 3. iPhone - 的viewController調用的viewController
- 4. iPhone:呈現模態視圖切換調用ViewController的視圖
- 5. 從一個視圖調用onclick方法iphoneprogess集線器iphone sdk
- 6. iPhone SDK中的Viewcontroller問題
- 7. 如何在視圖中調用位於viewController中的方法?
- 8. 引用superview的方法
- 9. 從viewDidAppear方法調用viewController的方法
- 10. 從iOS 4 SDK上的SuperView中刪除視圖
- 11. 旋轉superview iphone後移動子視圖?
- 12. 從objective-c中的另一個視圖調用一個方法。 (iphone sdk)
- 13. 如何顯示superview的子視圖?
- 14. (iphone)在superview的界限之外設置子視圖的框架?
- 15. 從iPhone SDK調用Facebook API方法
- 16. iPhone如何從它的子視圖調用父視圖中的方法
- 17. 從子類調用ViewController中的方法
- 18. 想要從appdelegate調用ViewController的方法
- 19. appdelegate如何調用viewcontroller的方法?
- 20. 將MyAppDelegate.m中的方法調用到ViewController
- 21. 視圖控制器中視圖初始化之前調用的方法 - iPhone iOS 5 SDK
- 22. 從其SuperView中刪除視圖,在iPhone上通知子視圖
- 23. 更改viewcontroller的大小 - iphone sdk
- 24. 從ViewController調用UIView方法
- 25. 如何在iPhone SDK中獲取UIView的superView的UIViewController?
- 26. Superview的UILongPressGestureRecognizer被調用而不是子視圖
- 27. 在子視圖(按鈕)上調用Superview的tabgesture點擊
- 28. iPhone中的子視圖的動畫sdk
- 29. 從ID獲取ViewController名稱並調用特定的視圖方法
- 30. 從另一個ViewController調用一個ViewController的實例方法
你好, 我已經試過你的收視率 - 邀請我現在可以訪問[theSuperview correctIt]; 它編譯正確。但我可以看到沒有更正。甚至不是NSlogs。你覺得我應該檢查什麼?再次感謝你 – kossibox
我認爲你應該通過在更正後調用correctDestinationPosition刷新你的視圖 [self setNeedsDisplay:YES]; –