пользовательский делегат viewcontroller не работает - PullRequest
0 голосов
/ 09 января 2012

У меня проблемы с пользовательским делегатом, я не уверен, почему он не работает. Я хочу передать делегат основному представлению, чтобы он автоматически переместился в подробный вид после добавления новой записи.

Не уверен, что я пропустил. Я делаю все связи с раскадровкой и 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];
}

Ответы [ 2 ]

1 голос
/ 09 января 2012
 @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];
0 голосов
/ 09 января 2012

Кажется, мне не хватало функции:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"addNote"]) {
        UINavigationController *navController = [segue destinationViewController];
        addNote *addingNote = (addNote *)navController.topViewController;
        addingNote.delegate = self;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...