【发布时间】:2015-01-19 09:34:33
【问题描述】:
我的问题是如何使用 uinavigationcontroller 将数据从第二个视图控制器发送回第一个视图控制器。 我在导航控制器上有 2 个按钮来发送数据或取消,如 2ndviewcontroller.h 包含 //------------------------------------------------ ------
@class DetailsViewController;
@protocol DetailsViewControllerDelegate <NSObject>
- (void)detailsViewControllerDidCancel:(DetailsViewController *)controller;
- (void)detailsViewControllerDidSave:(DetailsViewController *)controller;
@end
@interface DetailsViewController : UIViewController
{
UITextField *nameTextField;
UITextField *versionTextField;
UITextField *companyTextField;
}
@property (nonatomic, weak) id <DetailsViewControllerDelegate> delegate;
- (void)cancel:(id)sender;
- (void)save:(id)sender;
//-------------------------------------------------------------
2ndviewcontroller.m contains
- (void)cancel:(id)sender
{
[self.delegate detailsViewControllerDidCancel:self];
}
- (void)save:(id)sender
{
[self.delegate detailsViewControllerDidSave:self];
}
虽然我的 1stviewcontroller 将 2ndviewcontroller 的委托实现为, //------------------------------------------------ ----
- (void)detailsViewControllerDidCancel:(DetailsViewController *)controller
{
[detailedViewController dismissViewControllerAnimated:YES completion:nil];
}
- (void)detailsViewControllerDidSave:(DetailsViewController *)controller
{
detailedViewController = [self.navigationController viewControllers][0];
[self dismissViewControllerAnimated:YES completion:nil];
}
//--------------------------------------------- ---------
有什么想法吗? 我正在以编程方式完成所有事情,而不是使用任何故事板。
【问题讨论】:
-
根据您的要求使用 getter 和 setter 方法在 Data Manager 类上创建
-
这很容易做到。在第一个控制器中定义一个公共方法,并在第二个控制器中调用它。或者委托、通知、键值观察等。非常简单。
-
我认为这不是正确的方法,委托和协议应该完成这项工作。我想知道为什么控制没有回到 firstviewcontroller - (void)detailsViewControllerDidCancel:(DetailsViewController *)controller 或 - (void)detailsViewControllerDidSave:(DetailsViewController *)controller
-
@wcd 对不起,我没能找到你。我如何在 child.in 中实例化父类。在您的情况下,我认为 Parent 创建了子类。 .孩子将创建父母。
-
在我看来您误解了
UINavigationController的用法。你使用了dismissViewControllerAnimated。此方法用于关闭以模态方式呈现其视图的视图控制器。也许您需要阅读以下文档:developer.apple.com/library/ios/featuredarticles/… 以了解 iOS 中的视图控制器是如何工作的
标签: ios objective-c