自定义视图控制器委托不起作用 [英] custom viewcontroller delegate not working

查看:32
本文介绍了自定义视图控制器委托不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的自定义委托有问题,不知道为什么不起作用.我想将委托传递给主视图,以便在添加新记录后自动推送到详细信息视图.

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆