SplitViewController を使用して小さな iPad APP を作成しており、主に DetailViewController で MasterViewController を使用しています。DetailViewController から MasterViewController にデータをプッシュしようとしています。情報がMasterViewControllerにプッシュされたら、それを利用したいので、popメソッドを使用してこれを行います。
push メソッドは配列に値を設定しますが、何らかの理由でpushModuleTitle
メソッドを呼び出すたびに配列が再作成され、一度に 1 つのオブジェクトしか保持されません。
の中にDetailViewController.m
- (IBAction)buttonAddPressed:(id)sender
{
cw3MasterViewController *master = [[cw3MasterViewController alloc]init];
[moduleTitles addObject:textFieldModuleTitle.text];
[master pushModuleTitle:self.textFieldModuleTitle.text];);
}
の中にMasterViewController.m
- (NSMutableArray *)moduleTitleStack//init array
{
if (!_moduleTitleStack){
_moduleTitleStack = [[NSMutableArray alloc] init];
}
return _moduleTitleStack;
}
-(void)pushModuleTitle:(NSString*)moduleTitile
{
NSString * moduleTitileObject = moduleTitile;
[self.moduleTitleStack addObject:moduleTitileObject];
NSLog(@"%@",self.moduleTitleStack);
}
プッシュされた情報を使用するために、この pop メソッドを使用しています。理由はわかりません。
-(NSString *)popModuleTitle
{
NSString * moduleTitileObject = [self.moduleTitleStack lastObject];
if (moduleTitileObject)[self.moduleTitleStack removeLastObject];
return moduleTitileObject;
}
popModuleTitle メソッドの呼び出し: null 値を与える
- (IBAction)testButtonPressed:(id)sender {
NSLog(@"%@", [self popModuleTitle]);
}