Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
代理未启动ios_Ios_Delegates - Fatal编程技术网

代理未启动ios

代理未启动ios,ios,delegates,Ios,Delegates,嗨,我试图创建一个委托,将数据从tableInterval反向传递到ElectricMeter uiViewController 但代表仍然不会开火。 这是我的密码 表h文件 @protocol updateIntervalDelegate @required -(void)intervalRefresh:(NSString *)interval; @end @interface tableInterval : UITableViewController<UITextFieldDele

嗨,我试图创建一个委托,将数据从tableInterval反向传递到ElectricMeter uiViewController 但代表仍然不会开火。 这是我的密码 表h文件

@protocol updateIntervalDelegate
@required
-(void)intervalRefresh:(NSString *)interval;
@end


@interface tableInterval : UITableViewController<UITextFieldDelegate, MBProgressHUDDelegate>
{    
IBOutlet UILabel *IntervalLabel;
IBOutlet UILabel *EndLabel;
IBOutlet UILabel *StartLabel;
MBProgressHUD *HUD;
IBOutlet UIDatePicker *datePicker;
IBOutlet UITableViewCell *IntervalCell;
__unsafe_unretained id <updateIntervalDelegate> delegate;
}

@property (nonatomic, strong) UIActionSheet *actionSheet;
@property (nonatomic, strong) UITextField *interval;
@property (nonatomic, retain) NSURL *url;
@property (nonatomic, retain) NSString *StartDate;
@property (nonatomic, retain) NSString *EndDate;
@property(nonatomic, assign)id <updateIntervalDelegate> delegate;
@property (retain, nonatomic) NSString* noId;
-(IBAction)PreviousView:(id)sender;
-(IBAction)updateInterval:(id)sender;
@end
调用委托方法

这是在implementation class.h文件中

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "tableInterval.h"
#import "ListMeterCell.h"
#import "PopoverView.h"
#import "MBProgressHUD.h" 



@interface ElectricMeterController : UIViewController<UITableViewDelegate,UITableViewDataSource, PopoverViewDelegate,MBProgressHUDDelegate,updateIntervalDelegate> {
PopoverView *pv;
MBProgressHUD *HUD;
}

那么nslog没有被解雇,为什么?我错过了什么吗?

您是否设置了controllerName.delegate=self???
我认为这一定是您应该首先设置委托的唯一问题。

调用委托时使用此模式:

if (delegate && [delegate respondsToSelector:@selector(intervalRefresh:)])
    [delegate intervalRefresh:interval.text];
else NSLog(@"delegate (%@) not responding", delegate);

确保设置委托属性,委托对象实现协议。

因此我将此项放在segue函数
code
上,如果([[segue identifier]IsequalString:@“toTimeInterval”]){UINavigationController*navigationController=segue.destinationViewController;tab=[[navigationController视图控制器]objectAtIndex:0];tab.noId=self.no;tab.delegate=self;}
code
代理!解决了的!
-(void)intervalRefresh:(NSString *)interval{
NSLog(@"delegate fired!");

NSDictionary *copy=[updatedInfo mutableCopy];
[copy setValue:interval forKey:@"interval"];
[temp removeObjectAtIndex:path.row];
[temp insertObject:copy atIndex:path.row];

[self.MeterList reloadData];

}
if (delegate && [delegate respondsToSelector:@selector(intervalRefresh:)])
    [delegate intervalRefresh:interval.text];
else NSLog(@"delegate (%@) not responding", delegate);