2013-11-17 2 views
0

У меня есть TableView, который HomeViewController У меня есть еще один вид, который NewViewControllerДобавление данных в TableView в другом классе

В HomeViewController я могу добавить элементы в PLIST, такие как ключ «Название книги», выполнив:

NSString *bookTitle; 

self.books addObject:bookTitle 

затем нажмите кнопку, чтобы нажать NewViewController, где есть текстовое поле. Когда нажата кнопка сохранения, мне нужен текст для текстового поля, который будет добавлен в табличный вид. «Текст книги» в plist

Но я не могу делать self.books в этом классе, так как я могу добавить в tableview thats in HomeViewController от NewViewController

+0

Можете ли вы вставить свой код, что вы пробовали? –

ответ

1

Определите метод делегата в NewViewController, который вызывается при нажатии кнопки, передавая содержимое textField в HomeViewController. HomeViewController реализует метод делегирования и затем может соответствующим образом обновлять коллекцию книг. Например .:

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 
+0

Привет, я совершенно новичок в этом, вы можете показать какой-то код или что-нибудь, что мне поможет, спасибо. – user3001526

+0

Несомненно - добавление сейчас ... – bobnoble

+0

Спасибо большое! у меня есть трещина на нем сейчас – user3001526

Смежные вопросы