NSMutableArray
を持つNSObject
にアクセスする2つのビューコントローラがあります。最初のVCは配列のオブジェクトを読み込むテーブルビューで、2番目のVCはオブジェクトを追加する場所です。 2番目のVCから最初のVCへの私のpopViewControllerAnimated
が新しいオブジェクトが失われ、最初のVCはのでもviewWillAppear
のテーブルビューをリロードするときだけロードします。View ControllerからNSObjectへデータを渡す
- 2番目のVCから
NSMutableArray
に渡す新しいオブジェクトはなぜ紛失しますか? - どのVCからでもアクセスできる
NSMutableArray
にオブジェクトを追加していることを確認するにはどうすればよいですか?
私はNSMutableArray *groceryList
を持っているタイプNSObject
のGroceries
クラスを、持っています。
// NSObject class
@interface Groceries : NSObject
@property (nonatomic, strong) NSMutableArray *groceryList;
@end
// First VC
#import "Groceries.h"
@interface TableViewController()
@property (nonatomic, strong) Groceries *groceries;
@end
@implementation TableViewController
- (void)viewDidLoad {
[super viewDidLoad];
_groceries = [[Groceries alloc]init];
}
// Second VC
#import "Groceries.h"
@interface AddItemViewController()
@property (weak, nonatomic) IBOutlet UITextView *textView;
@property (nonatomic, strong) Groceries *groceries;
@end
@implementation AddItemViewController
- (void)viewDidLoad {
[super viewDidLoad];
_groceries = [[Groceries alloc]init];
}
// When I press the return button, I'm popping back to First VC
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[[_groceries groceryList]addObject:_textView.text];
[textView resignFirstResponder];
[[self navigationController]popViewControllerAnimated:YES];
return NO;
}
return YES;
}
@end
私はアプリを終了するとどうなりますか?再度起動します。あなたの配列はどのように振る舞いますか? – Alok
新しいオブジェクトはまだ 'groceryList'に格納されます。 – chicobermuda
NSUserDefaults/coredata/sqliteのような永続データストアはどうですか? NSUserDefaultsで行えるデータの中で最もシンプルで非常に少量です。 – Alok