例如,我有3个观点:
ListContactView包含Customers的动态记录。点击单元格将切换到DetailedContactView。
ListContactView包含“添加”按钮,该按钮位于SaveContactView。
当用户保存将转到DetailedContactView时,SaveContactView。
DetailedContactView,用户可以“编辑”并返回到SaveContactView
这是我的问题:
ListContactView到DetailedContactView OR SaveContactView到DetailedContactView
在DetailedcontactView上的viewDidLoad上,当他来自某个视图时可以调用不同的方法/函数吗?
我不想创建一些冗余的额外重复“相似”视图。那么有什么最好的方法吗?
答案 0 :(得分:2)
您只需在viewDidLoad
DetailedContactView
中对此视图的父级进行检查即可。
如果您正在使用push segue,请在UINavigationControler stack
中检查此视图控制器的父视图控制器。
如果您是modally present
此DetailedContactView
,请找到[self presentingViewController]
并采取相应措施。
或者从最后一页设置一个标志以区分父母。
可能会对你有帮助。
答案 1 :(得分:0)
正确的方法是实现SaveContactView和ListContactView的-prepareForSegue:sender:
。将segue的目标转换为DetailedContactView类型并执行自定义设置。
// SaveContactView
- (void)prepareForSegue:(UIStoryboardSegue *)segue
sender:(id)sender
{
DetailedContactView *detailedVC = segue.sourceViewController;
[detailedVC setupForShowingFromSaveView];
}
// ListContactView
- (void)prepareForSegue:(UIStoryboardSegue *)segue
sender:(id)sender
{
DetailedContactView *detailedVC = segue.sourceViewController;
[detailedVC setupForShowingFromListView];
}