メイン ビューにがあり、ユーザーが別のオブジェクトをテーブルビューに追加できるようにする別のビューにプッシュするUITableView
「追加」ボタンがあります。UINavigationBar
このビューには、情報をメイン ビューに送り返すためのプロトコルがあります。
私の問題は、プロトコルから送信されたこの新しいオブジェクト ( NSMutableDictionary
) をNSMutableDictionary
メイン ビューのプロパティに追加しようとすると、追加されないことです。を追加しようとしましたNSLog
が、このオブジェクトは であると表示されますnull
。メソッドでこのオブジェクトを初期化すると、ビューがポップviewDidLoad
されるたびに実行UINavigationController
され、ディクショナリ内のすべてがリセットされます。オブジェクトを初期化して、すべてが格納されていることを確認する場所がわかりません。
プロトコルは正常に動作しますが、送信されたオブジェクトに対して何もできません。
AddCellViewController.h で:
#import <UIKit/UIKit.h>
@protocol AddCellDelegate <NSObject>
@required
-(void)passCellInfo:(NSMutableDictionary *)cellInfo;
@end
@interface AddCellViewController : UITableViewController <UITextFieldDelegate> {
id <AddCellDelegate> delegate;
}
@property (strong) id <AddCellDelegate> delegate;
@end
AddCellViewController.m (プロトコルを利用するメソッド):
-(void)sendObject{
[[self delegate] passCellInfo:newCellInfo];
[self.navigationController popToRootViewControllerAnimated:YES];
}
MainView.m で:
-(void)passCellInfo:(NSMutableDictionary *)cellInfo{
[self.cellInformation setValue:cellInfo forKey:[cellInfo objectForKey:@"cell_title"]];
[self.cells addObject:[cellInfo objectForKey:@"cell_title"]];
[self.tableView reloadData];
NSLog(@"%@: cellInfo - cellInformation: %@ - cells: %@",cellInfo ,self.cellInformation,self.cells); //logs the object passed from the protocol (this works), the cellInformation object, and cells object (these return null)
}