我想在弹出时将数据发送回主视图
-(IBAction)addPartToBuild:(id)sender{
[self.navigationController popToRootViewControllerAnimated:YES];
}
我可以使用发件人:数据吗?我试过但是我得到了“No @interface”错误。
答案 0 :(得分:1)
您正试图弄乱MVC(模型视图控制器)理念,视图控制器必须负责UI处理。
您需要构建负责数据存储的数据模型和数据控制器。然后,您可以添加通知或将数据更改事件委派给您的根或任何其他视图控制器,这将很容易阅读,您将获得所有MVC的好处。
这必须像
一样简单[[MyDataManager sharedInstance] addPartToBuild:newPart];
[self.navigationController popToRootViewControllerAnimated:YES];
根视图控制器应该每次从数据控制器获取更改的数据时,都会捕获数据更改通知,委托消息或完全捕获UI。
可能误解了这个问题,如果您需要知道哪个控件触发了操作,id sender
就是该控件参考,例如如果您将操作链接到UIButton,则发件人将是UIButton引用(您可以使用[sender isKindOfClass:[UIButton calss]]
进行检查,然后获取UIButton的任何所需属性,就像您可以为多个按钮分配相同的操作并检查按钮标记决定做什么,检查Mediator模式以获取详细信息。