Как импортировать метод из моего uiviewcontroller в класс утилиты nsobject (который я использую в диспетчере представления для вызова общих методов?) У меня большое число которые должны вызывать один и тот же метод.Как мне вызвать метод из моего uiviewcontroller в утилите nsobject class
Нужно ли использовать NSInvocation? Должен ли я использовать что-то другое, как протоколы и делегаты?
Без доступа к методу по классу полезности я просто получить «NSInvalidArgumentException»
Это основная структура, мне нужно использовать.
utilityClass - .h
#import <Foundation/Foundation.h>
@interface utilityClass : NSObject
- (void) swipeLoad: (UIView*)myview;
@end
.m
#import "utilityClass.h"
@implementation utilityClass
- (void) swipeLoad: (UIView*) myview
{
UISwipeGestureRecognizer *oneFingerSwipeRight =
[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerSwipeRight:)];
[oneFingerSwipeRight setDirection:UISwipeGestureRecognizerDirectionRight];
[myview addGestureRecognizer:oneFingerSwipeRight];
UISwipeGestureRecognizer *oneFingerSwipeLeft =
[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerSwipeLeft:)];
[oneFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
[myview addGestureRecognizer:oneFingerSwipeLeft];
UISwipeGestureRecognizer *twoFingerSwipeRight =
[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingerSwiperight:)];
[twoFingerSwipeRight setDirection:UISwipeGestureRecognizerDirectionRight];
twoFingerSwipeRight.numberOfTouchesRequired = 2;
[myview addGestureRecognizer:twoFingerSwipeRight];
UISwipeGestureRecognizer *twoFingerSwipeLeft =
[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingerSwipeLeft:)];
[twoFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
twoFingerSwipeLeft.numberOfTouchesRequired = 2;
[myview addGestureRecognizer:twoFingerSwipeLeft];
}
@end
вид контроллера - .h
#import <UIKit/UIKit.h>
#import "utilityClass.h"
@class utilityClass;
@interface viewController : UIViewController
{
utilityClass *utilityClass;
}
@property (nonatomic, retain) utilityClass*utilityClass;
@end
.m
#import "viewcontroller.h"
@interface viewcontroller()
@end
@implementation viewcontroller
@synthesize utilityClass = _utilityClass;
- (void)viewDidLoad
{
[super viewDidLoad];
self.utilityClass = [[utilityClass alloc] init];
[self.utilityClass swipeLoad:self.view];
}
- (void)twoFingerSwiperight:(UISwipeGestureRecognizer *)recognizer {
//[self another_method]
}
- (void)twoFingerSwipeLeft:(UISwipeGestureRecognizer *)recognizer {
//[self another_method]
}
- (void)oneFingerSwipeRight:(UISwipeGestureRecognizer *)recognizer {
//[self another_method]
}
- (void)oneFingerSwipeLeft:(UISwipeGestureRecognizer *)recognizer {
//[self another_method]
}
@end
Спасибо, я даже не думал о создании подкласса UIViewcontroller. Оно работало завораживающе. (Я изменил свою пунктуацию только для примера здесь.) Я все равно хотел бы выяснить, как передать методы. – MGM