自定义视图控制器委托不起作用 [英] custom viewcontroller delegate not working
本文介绍了自定义视图控制器委托不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的自定义委托有问题,不知道为什么不起作用.我想将委托传递给主视图,以便在添加新记录后自动推送到详细信息视图.
i'm having issues on my custom delegate, not sure why is not working.i wan to pass the delegate to the mainview so it will auto push to a detail view after adding a new record.
不确定我错过了什么.我正在做与故事板的所有联系&iOS 5.
Not sure what i have missed out.i'm doing all the linkage with storyboard & iOS 5.
感谢您的关注并感谢所有评论
thanks for looking and appreciated all comments
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];
}
推荐答案
好像我漏掉了一个函数:
Seems I was missing a function:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"addNote"]) {
UINavigationController *navController = [segue destinationViewController];
addNote *addingNote = (addNote *)navController.topViewController;
addingNote.delegate = self;
}
}
这篇关于自定义视图控制器委托不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文