我的UITableView
主视图中有一个“添加”按钮,该按钮UINavigationBar
将推送到另一个视图,允许用户将另一个对象添加到 tableview。我在这个视图中有一个协议,允许将信息发送回主视图。
我的问题是,每当我尝试将从协议(即 a 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)
}