我有一个TableView,它是HomeViewController 我还有另一个View是NewViewController
在HomeViewController中,我可以通过执行以下操作向plist添加项目,例如“Book Title”键:
NSString *bookTitle;
self.books addObject:bookTitle
然后单击一个按钮以推送到NewViewController,其中有一个文本字段。单击保存按钮时,我需要将textField的文本添加到plist中的表视图“Book text”键
但是我不能在这个类中做self.books所以如何从NewViewController添加到HomeViewController中的tableview那个
答案 0 :(得分:1)
在NewViewController中定义一个委托方法,单击该按钮时调用该方法,将textField内容传递给HomeViewController。 HomeViewController实现委托方法,然后可以根据需要更新books集合。 E.g:
NewViewController.h
// Define the delegate method(s)
@protocol NewViewControllerDelegate <NSObject>
-(void)addedTitle:(NSString *)text;
@end
@interface NewViewController : UIViewController
// Declare the delegate property
@property (nonatomic, weak)id <NewViewControllerDelegate>delegate;
// other declarations...
@end
NewViewController.m
#import "NewViewController.h"
@interface NewViewController ()
@end
@implementation NewViewController
// other implementation code...
-(IBAction)buttonTapped:(id)sender{
[self.delegate addedTitle:textField.text];
}
@end
HomeViewController.h
#import <UIKit/UIKit.h>
#import "NewViewController.h"
// Note <NewViewControllerDelegate> on next line
@interface HomeViewController : UIViewController <NewViewControllerDelegate>
// other declaration code...
@end
HomeViewController.m
#import "HomeViewController.h"
@interface HomeViewController ()
@end
@implementation HomeViewController
-(void)viewDidLoad{
[super viewDidLoad];
myNewViewController.delegate = self;
}
// other implementation code...
#pragma mark - NewViewController delegate methods
// Implements the delegate callback
-(void)addedTitle:(NSString *)title{
[self.books addObject:title];
}
@end