嗨,我是iPhone / iPad开发的新手。
在我的应用程序中单击按钮,想要显示视图控制器,如presentModalViewController,我能够做包含UITableView与一些数量的值。在选择微粒行时我想将值传递给控制器后面的控制器。
我正在使用Apple示例应用程序PhotoPicker代码。 http://developer.apple.com/library/ios/#samplecode/PhotoPicker/Introduction/Intro.html
但是我无法理解我在代码中做错了什么。
我无法进入MyViewController.m
中的代码- (void)didFinishWithCamera
{
[self dismissModalViewControllerAnimated:YES];
//Here is my some logic
}
任何人都可以帮助我...如何从OverlayViewController调用此函数?
请参考以上链接并指导我或给我一些步骤或指导我同样的。
答案 0 :(得分:0)
使用delegation。
我在我正在写的应用程序中使用类似的东西:
// MySecretSelectionViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[delegate mySecretSelectionViewController:self didSelectObject:[self objectForIndexPath:indexPath] atIndexPath:indexPath];
}
// MyViewController.m
- (void)mySecretSelectionViewController:(MySecretSelectionViewController *)es didSelectObject:(MySecretObject *)object atIndexPath:(NSIndexPath *)indexPath {
// do something with the selected object
[self dismissModalViewControllerAnimated:YES];
}
- (void)showMySecretSelectionViewController:(id)sender {
MySecretSelectionViewController *vc = ...
vc.delegate = self;
// present ViewController
}
答案 1 :(得分:0)
您也可以使用NSNotificationCenter执行此操作。
在MyViewController.m中:
- (void)viewDidLoad
{
// your code
// Add observers
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didFinishWithCamera) name:@"YourObserverName" object:nil];
}
+ (void)callDidFinishWithCamera
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"YourObserverName" object:nil];
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
// your code
}
来自OverlayViewController.m:
[MyViewController callDidFinishWithCamera];
使用上面的类方法从OverlayViewController调用MyViewController中的didFinishWithCamera