如何声明和实现将返回视图属性的协议? 例如我有一个名为mainView的视图,我希望它能够在另一个视图(例如customView)询问它时返回数组。 我在做什么是我在mainView实现文件中声明了一个协议(带有一个returnTheArray函数),并将customView设置为采用此协议,但我坚持了这一点。我该怎么做才能正确地工作?或者有更有效/简单/正确的方法来做到这一点?谢谢。通过协议在两个视图控制器之间传递数据
1
A
回答
2
协议本身只是函数/方法名称,参数和返回值的声明。作为一个协议,只有当它被许多类实现时,我个人更喜欢在一个单独的头文件protocolName.h中声明它。
符合协议的每个类都需要实现该方法。对我来说,它是如此简单。
AClass.h
@itnerface ACLASS:NSObject的{ //一些性质 } // @property语句 @end
AClass.m
#include "BClass.h"
@implementation AClass
//@synthesize statements;
- (void) aFunctionFetchingTheArray {
BClass *bClass = [[BClass alloc] initWithSomething:kParameter];
NSArray *anArray = [bClass returnTheArray];
//Do something with it
}
@end
MyProtocol.h
@protocol MyProtocol
- (NSArray *) returnTheArray;
@end
BClass.h
#include "MyProtocol.h"
@interface BClass <MyProtocol> {
// some properties in interface
}
// some @property
// some methods
@end
BClass.m
#include "BClass.h" //No need to include MyProtocol.h here too, in this case
- (NSArray *) returnTheArray {
return [NSArray arrayWithObjects:@"A", [NSNumber numberWithtInt:1], [UIColor clearColor], somethingElse, evenMore, nil];
}
// more methods
@end
请纠正我,如果我错过了或者拼错了重要的东西。
相关问题
- 1. 试图在两个视图控制器之间传递数据
- 2. 通过属性在视图控制器之间传递数据
- 3. 通过segue在视图控制器之间传递数据
- 4. 无法在两个视图控制器之间传递数据
- 5. 在两个视图控制器之间传递数据Swift IOS
- 6. 如何在两个视图控制器之间传递数据
- 7. 在两个视图控制器之间传递mapkit数据
- 8. 使用协议和委托在视图控制器之间传递数据
- 9. 如何在两个视图控制器之间传递整数?
- 10. 使用自定义协议在两个视图控制器之间传递数据值
- 11. 如何通过协议/代理在UIViewControllers之间传递数据
- 12. 使用协议和代理在视图之间传递数据
- 13. 在视图控制器之间传递多个数据
- 14. Swift - 在两个tableviews(2个视图控制器)之间传递数据
- 15. 如何在两个视图控制器之间传递NSArray?
- 16. 在视图控制器之间传递数组数据
- 17. ios在两个视图控制器之间传递数据而没有segue?
- 18. 使用'Delegation'在两个视图控制器之间传递数据:Objective-C
- 19. 不断在两个视图控制器之间传递数据iOS
- 20. 数据传输之间的两个视图控制器
- 21. iOS客观c在视图控制器之间传递数据
- 22. 在IOS中的视图控制器之间传递数据
- 23. 在相同视图控制器类之间传递数据
- 24. Xcode在视图控制器之间传递数据?
- 25. 在视图和控制器之间传递数据
- 26. 在Xcode中的视图控制器之间传递数据
- 27. mvc在控制器和视图之间传递数据
- 28. 在视图控制器之间传递数据
- 29. Swift 3在视图控制器之间传递数据
- 30. 在视图控制器之间传递数据DidSelectRowsAtIndexPath Storyboards
呃.. UIViewController? – meggar 2012-03-16 17:27:56
是的。从UIViewController到UITableViewController – nemesis 2012-03-16 17:30:35
我不明白为什么你需要一个协议,如果viewcontrollers互相引用,你可以只添加一个方法。 – meggar 2012-03-16 17:35:24