ios-iOS设置的代理没有被调用

问题描述

iOS设置的代理没有被调用
SearchViewController.h

#import
#import ""search.h""

@interface SearchViewController : UIViewController

@property (nonatomicstrong) 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);
    }

解决方案

使用代理注意,一般代理有weak或者assign。
自己写好协议@protocol xxxx
SearchViewController.h里对代理声明时最好@property (nonatomicassign) i<协议>d delegate;
使用的时候:SearchResultController类要实现代理,除了searchViewVC.delegate = self;还要在@interface SearchResultControlle<代理协议>
最后是使用代理方法

解决方案二:
IOS 设置代理

解决方案三:
你要设置self.delegate=searchbar的协议啊

解决方案四:
delegate没类型,也没有@protocol声明协议吧,而且也没声明delegate对象。你找个delegate的demo看一下吧

解决方案五:
不多说了,给你补充下代码

SearchViewController.h
#import
#import ""search.h""

**@protocol SearchViewControllerDelegate

  • (void)searchTextChange;@end**@interface SearchViewController : UIViewController@property (nonatomicassign) iddelegate;@end

然后在
SearchResultController.h 头文件里遵守这个协议
@interface SearchResultController : UIViewController

解决方案六:
@property (nonatomicassign) id delegate;//代理一般这个设置

在新建控制器的时候searchViewVC.delegate = self; 代表 self 这个控制器遵循了SearchViewControllerDelegate

时间: 2024-08-16 05:10:23

ios-iOS设置的代理没有被调用的相关文章

ios-关于IOS协议代理方法自动调用问题?

问题描述 关于IOS协议代理方法自动调用问题? 各位大牛好, 想问一个关于IOS协议代理的问题: 是否通过遵守某个协议,实现了其中的方法,对于这些方法来说,大多数情况下是 视图对象对其进行自动调用的吗? 例如:当表格不知道自己的行高,就去找实现了相关方法的代理?找它实现的相关方法 来自动获得行高? 小弟不太理解代理与协议方面的知识,希望可以有大牛解答,谢谢. 解决方案 你理解的不错,的确是这样,但是少了一步.除了遵守协议,实现方法之外,还要把自身设置成被委托对象.....delegate =se

ios-需要在IOS中设置延迟功能

问题描述 需要在IOS中设置延迟功能 需要一个延时器,进行23秒的延迟然后执行函数.应该怎么实现?用不用NSTimer? 解决方案 performSelector: withObject: afterDelay: 解决方案二: 简单点的话,使用performSelector: withObject: afterDelay: 方法 [self performSelector:@selector(delayMethod:) withObject:nil afterDelay:23];

ios动态设置lbl文字标签的高度

  本文给大家分享的是ios动态设置lbl文字标签的高度宽度的方法,一共给大家汇总了3种方法,小伙伴们根据自己的项目需求自由选择. 代码如下: txtlbl.font = [UIFont boldSystemFontOfSize:14.0f]; txtlbl.numberOfLines = 0; NSString *str = @" 阿方决定设立科技特网络离开电视剧分w额两个大陆高科技了了不见了日i倒计时离开我说老师肯德基弗兰克萨江东父老将费德勒说阿方决定设立科技特网络离开电视剧分w额两个大陆高

服务器-iOS 数据 设置模式 优化 数据返回速度

问题描述 iOS 数据 设置模式 优化 数据返回速度 现在APP的问题 ,后台.很小压力很大,逻辑判断复杂,返回数据速度太慢. 现在的流程:我要所搜附近的小时工,手机定位把自己的坐标发给付服务器,服务器跳去所有的员工,首先判断服务类型是否为小时工 然后判断是否空闲 剩下若干个空闲的小时工,然后根据系统工具和小时工的坐标计算剩下每个小时工到客户的距离,根据距离排序,取里的最近的几个人返回.经过这一系列操作所耗费的时间太长,现在想优化,减少时间. 解决方案1. 把客户端和员工端增加固定地址的设置,客

IOS倒计时设置UIButton标题title的抖动问题_IOS

例如,在发送验证码后,button状态需要变为disable,每隔一秒显示倒计时时间,仅仅设置 [button setTitle:title forState:UIControlStateDisabled]; 或 [button setTitle:title forState:UIControlStateNormal]; 是不够的,按钮会一闪一闪的抖动. 需要同时设置: button.titleLabel.text = title; [button setTitle:title forState

iOS端设置推送免打扰无效

问题描述 iOS端设置了推送免打扰的时间段,下次登录获取依然没有设置成功 解决方案 设置推送免打扰需要使用真机,模拟器不行.

IOS图片设置毛玻璃效果_IOS

推荐阅读:ios毛玻璃效果的实现及图片模糊效果的三种方法 废话不多说了,直接给大家贴代码了,具体代码如下所示: // 创建需要的毛玻璃特效类型 UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; // 毛玻璃view 视图 UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:blurEf

Python程序中设置HTTP代理_python

0x00 前言 大家对HTTP代理应该都非常熟悉,它在很多方面都有着极为广泛的应用.HTTP代理分为正向代理和反向代理两种,后者一般用于将防火墙后面的服务提供给用户访问或者进行负载均衡,典型的有Nginx.HAProxy等.本文所讨论的是正向代理. HTTP代理最常见的用途是用于网络共享.网络加速和网络限制突破等.此外,HTTP代理也常用于Web应用调试.Android/IOS APP 中所调用的Web API监控和分析,目前的知名软件有Fiddler.Charles.Burp Suite和mi

思科 IOS&amp;IOS XE Software CMP远程代码执行漏洞通报

2017年3月17日美国时间下午4点,Cisco官方网站发布Cisco IOS&IOS XE Software 集群管理协议(Cluster Management Protocol)存在远程代码执行漏洞.该漏洞目前为0day漏洞,危害等级高.该漏洞允许未授权访问,远程攻击者可以重启设备和远程执行代码提升权限. Cisco IOS是Cisco的网际操作系统:是一个为网际互连优化的复杂的操作系统:也是一个与硬件分离的软件体系结构,随网络技术的不断发展,可动态地升级以适应不断变化的技术(软件). 根据