Ios6 ios 6中的委托和协议似乎不起作用

Ios6 ios 6中的委托和协议似乎不起作用,ios6,Ios6,我使用委托和协议创建了一个简单的TableView应用程序,它在ios 5中工作,但当我更新xcode时,我在ios 6中不工作。 代码如下所示: 在子视图中: @class AddItemViewController; @class CheckListItem; @protocol AddItemViewControllerDelegate <NSObject> - (void)addItemViewControllerDidCancel: (AddItemViewControl

我使用委托和协议创建了一个简单的TableView应用程序,它在ios 5中工作,但当我更新xcode时,我在ios 6中不工作。 代码如下所示:

在子视图中:

@class AddItemViewController;
@class CheckListItem;
@protocol AddItemViewControllerDelegate <NSObject>

- (void)addItemViewControllerDidCancel: (AddItemViewController *)controller;
- (void)addItemViewController:(AddItemViewController *)controller didFnishAddingItem:(CheckListItem *)item;

@end


@interface AddItemViewController : UITableViewController <UITextFieldDelegate>

//declare an property
@property (nonatomic, assign) id <AddItemViewControllerDelegate> delegate;

in childview.m:
- (void)addItemViewControllerDidCancel: (AddItemViewController *)controller{
//i do something here
}

in parentview.h:
#import "AddItemViewController.h"

@interface CheckListViewController : UITableViewController <AddItemViewControllerDelegate>

-(IBAction)addItem;

@end

in parentview.m:
- (void)addItemViewControllerDidCancel:(AddItemViewController *)controller
{
    [controller dismissViewControllerAnimated:YES completion:nil];

}
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([segue.identifier isEqualToString:@"AddItem"]){
        UINavigationController *navigationController = segue.destinationViewController;
        AddItemViewController *controller = (AddItemViewController *)navigationController;
        controller.delegate = self;
        NSLog(@"perform prepare for segue");

    }
}
@class AddItemViewController;
@类CheckListItem;
@协议AddItemViewControllerDelegate
-(void)AddItemViewController IDCancel:(AddItemViewController*)控制器;
-(void)addItemViewController:(addItemViewController*)控制器didFnishAddingItem:(CheckListItem*)项;
@结束
@接口AddItemViewController:UITableViewController
//申报财产
@属性(非原子,赋值)id委托;
在childview.m中:
-(无效)AddItemViewController IDCancel:(AddItemViewController*)控制器{
//我在这里做点什么
}
在parentview.h中:
#导入“AddItemViewController.h”
@接口CheckListViewController:UITableViewController
-(i)附加条款;
@结束
在parentview.m中:
-(无效)AddItemViewController IDCancel:(AddItemViewController*)控制器
{
[控制器解除视图控制器激活:是完成:无];
}
-(void)prepareForSegue:(UIStoryboardSegue*)segue发送方:(id)发送方
{
if([segue.identifier IsequalString:@“AddItem”]){
UINavigationController*navigationController=segue.destinationViewController;
AddItemViewController*控制器=(AddItemViewController*)导航控制器;
controller.delegate=self;
NSLog(@“为segue执行准备”);
}
}
这个代码有什么问题吗?
谢谢

在子视图中,您必须调用[delegate AddItemViewControllerIDCancel:(AddItemViewController*)controller],而不仅仅是调用该方法

如果您更改此选项,它应该会起作用:)