iphone - 自定义 View Controller 委托(delegate)不起作用

标签 iphone objective-c ios xcode

我的自定义委托(delegate)有问题,不知道为什么不起作用。我想将委托(delegate)传递到主视图,以便在添加新记录后它会自动推送到详细 View 。

不确定我错过了什么。我正在做与 Storyboard和 iOS 5 的所有链接。

感谢您的浏览并感谢所有评论

addnote.h

#import <UIKit/UIKit.h>
#import "memoView.h"

@protocol addNoteDelegate;
@interface addNote : UIViewController
{
    IBOutlet UITextField *memoNameTextField;
    IBOutlet UITextField *memoCommentsTextField;
    id <addNoteDelegate> delegate;
}

@property (nonatomic,assign) id <addNoteDelegate> delegate;


- (IBAction)done:(id)sender;
- (IBAction)cancel:(id)sender;
@end

@protocol addNoteDelegate <NSObject>
-(void)addNoteDidFinish:(addNote *)controller;
-(void)addNoteDidCancel:(addNote *)controller;
@end

addnote.m

-(IBAction)add:(id)sender
{   
   [[self delegate] addNoteDidFinish:self];
}

mainview.h

#import <UIKit/UIKit.h>
#import "addNote.h"

@interface mainView : UITableViewController<NSFetchedResultsControllerDelegate, addNoteDelegate>
{
}

@property (nonatomic, retain) NSArray *memoInfo;
@property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController;
@property (nonatomic, retain) NSManagedObjectContext *ObjectContext;

-(IBAction)backToMain:(id)sender;
- (IBAction)addNote:(id)sender;
@end

mainView.m

-(IBAction)addNote:(id)sender
{
    addNote *addingNote = [[addNote alloc] init];
    addingNote.delegate = self;
    [self performSegueWithIdentifier:@"addNote" sender:self];
}

- (void)addNoteDidFinish:(addNote *)controller{
//PUSH TO NEXT VIEW

    [[self navigationController] dismissModalViewControllerAnimated:YES];
}

最佳答案

 @protocol addNoteDelegate <NSObject>
-(void)addNoteDidFinish:(addNote *)controller;
-(void)addNoteDidCancel:(addNote *)controller;
@end

@interface addNote : UIViewController
{
    IBOutlet UITextField *memoNameTextField;
    IBOutlet UITextField *memoCommentsTextField;
    id <addNoteDelegate> delegate;
}

@property (nonatomic,assign) id <addNoteDelegate> delegate;


- (IBAction)done:(id)sender;
- (IBAction)cancel:(id)sender;
@end

和:

[self dismissModalViewControllerAnimated:YES];

不是:

[[self navigationController] dismissModalViewControllerAnimated:YES];

关于iphone - 自定义 View Controller 委托(delegate)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8783492/

相关文章:

objective-c - 数组未到达 cellForRowAtIndexPath

ios - 在显示 tableview 之前尝试完成 Firebase 存储下载的问题

objective-c - 如何重定向 URL 以在 ios 应用程序中的 puffin 浏览器而不是 safari 浏览器中打开?

ios - 呈现 UIImagePickerController 时如何获取顶 View Controller ?

iphone - iphone 相机拍照前如何设置延迟?

iphone - 将文件类型与我的 Iphone 应用相关联

iphone - 比较两个数组

iphone - 在表格 View 中添加按钮

iphone - 如何使用 Core Animation 在 iPhone 上的 2 个图像之间交叉淡入淡出

iphone - iPhone虚拟键盘添加新按钮?