开发者社区> 问答> 正文

关于OS设置的代理没有被调用 的问题

SearchViewController.h

#import 
 #import "search.h"

@interface SearchViewController : UIViewController

@property (nonatomic,strong) id delegate;

@end

SeachViewController.m

(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
 {
 if (_searchBar.text.length == 0) {
 [self setSearchControllerHidden:YES];
 }
 else
 {
 _searchController.searchText = _searchBar.text;
 //发送消息
 if ([self.delegate respondsToSelector:@selector(searchTextChange)]) {
 [self.delegate searchTextChange];
 }
[self setSearchControllerHidden:NO];


}
 }


SearchResultController.m

(void)viewDidLoad {
 [super viewDidLoad];

SearchViewController *searchViewVC = [[SearchViewController alloc]init];

searchViewVC.delegate = self;

self.resultList = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4", nil];
 }


(void)searchTextChange
 {
 NSLog(@"%@",self.searchText);
 }

展开
收起
爵霸 2016-03-11 09:48:31 1972 0
1 条回答
写回答
取消 提交回答
  • 使用代理注意,一般代理有weak或者assign。
    自己写好协议@protocol xxxx
    SearchViewController.h里对代理声明时最好@property (nonatomic,assign) i<协议>d delegate;
    使用的时候:SearchResultController类要实现代理,除了searchViewVC.delegate = self;还要在@interface SearchResultControlle<代理协议>,
    最后是使用代理方法

    2019-07-17 18:58:25
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
开放算力·云启未来 立即下载
2022龙蜥操作系统生态用户实践精选 立即下载
冬季实战营第二期:Linux操作系统实战入门 立即下载