我知道這個問題每兩天問一次。我看不出我做錯了什麼。 我有一個基於故事板導航控制器的應用程序。如何將數據傳遞給父視圖IOS
我的通知和流行/推塞格運作良好,唯一的是我不能添加字符串父母查看NSmutablearray。
我想添加一個字符串對象到父視圖的nsmutablearray。我體面的代碼沒有傳遞任何數據。
parent.h
@interface CreaatePlistTableViewController : UITableViewController<UITableViewDelegate, UITableViewDataSource>{
NSMutableArray *presenterList;
}
@property (nonatomic, strong) NSMutableArray *presenterList;
parent.m
NSString * const NOTIF_CreatePlist_UpdateTableview= @"CreatePlist/UpdateTableview";
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Private interface definitions for update tableview
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
@interface CreaatePlistTableViewController (private)
- (void)CreatePlistUpdateTableview:(NSNotification *)notif;
@end
@implementation CreaatePlistTableViewController
@synthesize presenterList=_presenterList;
- (void)viewDidLoad
{
[super viewDidLoad];
_presenterList=[[NSMutableArray alloc] init];
// Register observer to be called when logging out
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(CreatePlistUpdateTableview:)
name:NOTIF_CreatePlist_UpdateTableview object:nil];
NSLog(@"Presenter List: %@", _presenterList);
}
- (void)CreatePlistUpdateTableview:(NSNotification *)notif{
NSLog(@"Notification recieved");
NSLog(@"Presenter List: %@", _presenterList);
[_createPlistTableview reloadData];
}
child.h
@interface AddPresenterViewController : UITableViewController<UITextFieldDelegate,UIAlertViewDelegate>{
CreaatePlistTableViewController *crereaatePlistTableViewController;
}
@property(nonatomic,strong) CreaatePlistTableViewController *crereaatePlistTableViewController;
child.m
@synthesize crereaatePlistTableViewController=_crereaatePlistTableViewController;
//finished adding presenter
-(IBAction)finishedAddingPresenter:(id)sender{
//some xml string here
NSLog(@"final result XML:\n%@", writer.XMLString);
_crereaatePlistTableViewController=[[CreaatePlistTableViewController alloc]init];
//add object to parents view data source
[_crereaatePlistTableViewController.presenterList addObject:writer.XMLString];
//dismiss the view
[self.navigationController popViewControllerAnimated:YES];
//notify the parent view to update its tableview
[[NSNotificationCenter defaultCenter] postNotificationName:@"CreatePlist/UpdateTableview" object:nil];
}
輸出
Notification recieved
Presenter List: (
)
所以通知的作品,當我按一下按鈕。但它不會將對象傳遞給nsmutablearray。
我在做什麼錯在這裏?我如何添加一個對象到父視圖的nsmutablearray?
你如何將父控制器傳遞給子控制器? (即孩子的crereaatePlistTableViewController指向同一個父實例嗎?) – giorashc
我不會傳遞任何數據到子視圖,但我推推視圖推子視圖。除了我的切換和通知方法似乎只能工作的問題是它不會將字符串添加到父母nsmutablearray –
停止使用通知並開始使用塊:http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/Blocks /文章/ bxUsing。html – TheRonin