我在Xcode 4.6创建主详细信息模板的项目,我添加自定义单元格2个文本框。 我也创造了新的类,这是的UITableViewCell的子类,这个类中,我创建了文本字段网点。 当用户键入的东西的NSMutableArray被更新,并能正常工作。 现在我想知道如何通过这个数组回到MasterViewController(的UITableViewController),这样我就可以使用这些数据来显示计算。
我尝试使用教程UIViewControllers之间的代表,但我不断收到错误。 任何帮助表示赞赏。
你不应该保持数据里面UITableViewCell
,因为它打破了MVC。
你需要得到的一个参考UITextField
你的细胞。 这是我在一个登录表单怎么办:
我有一个名为自定义单元格的子类TextFieldCell
,它有一个出口被称为textField
,我想我UITableViewController
必须将这些引用UITextField
秒。
首先,我打开我的故事板,电池级设置为TextFieldCell比连接到的UITextField细胞文本框的出口。 比我这增加了tableView:cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
(…)
if (indexPath.row == 0) {
// Sets the textField of the first cell as the loginTextField.
self.loginTextField = tCell.textField;
} else {
// Sets the textField of the second cell as the passwordTextField.
self.passwordTextField = tCell.textField;
}
tCell.textField.delegate = self;
(…)
}
现在,我可以访问我的价值loginTextField
和我passwordTextField
。 我这样做对tableView:cellForRowAtIndexPath:
因为当我创建的细胞添加到表视图的。
你的情况,你需要创建协议:
我只是给了如何创建协议基本思路
此外阅读本题
#DetailViewController.h
#import <UIKit/UIKit.h>
@protocol MasterDelegate <NSObject>
-(void) getButtonTitile:(NSString *)btnTitle;
@end
@interface DetailViewController : MasterViewController
@property (nonatomic, assign) id<MasterDelegate> customDelegate;
#DetailViewController.m
if([self.customDelegate respondsToSelector:@selector(getButtonTitile:)])
{
[self.customDelegate getButtonTitile:button.currentTitle];
}
#MasterViewController.m
create obj of DetailViewController
DetailViewController *obj = [[DetailViewController alloc] init];
obj.customDelegate = self;
[self.navigationController pushViewController:reportTypeVC animated:YES];
and add delegate method in MasterViewController.m for get button title.
#pragma mark -
#pragma mark - Custom Delegate Method
-(void) getButtonTitile:(NSString *)btnTitle;
{
NSLog(@"%@", btnTitle);
}