【发布时间】:2013-06-06 20:53:10
【问题描述】:
我在 UINavigationStack 上有一个 UIViewController,我从这个 UIView 将另一个视图加载到堆栈上而不是作为子视图。我加载的这个视图只是应用程序的首选项视图,我覆盖在所显示的内容上。
即
myViewController <- on the stack button touch loads as a subview to myViewController
+ prefrencesViewController
我的问题是,有没有办法从 prefrencesViewController 调用 myViewController 中的方法?我正在尝试使用委托和协议,但它不起作用,所以我希望有一种我还不知道的简单方法可以做到这一点,或者我可以在委托/协议方面获得一些帮助......
这就是我的委托和协议设置代码的样子
//prefrencesViewController.h
@protocol GetPrefrencesViewControllerDelegate <NSObject>
-(void)reloadViewFromSavedPrefrences;
@end
//delegates and protocols
@property (nonatomic, weak) id <GetPrefrencesViewControllerDelegate> delegate;
//prefrencesViewController.m
//delegates and protocols
@synthesize delegate;
//.. inside button action
[[self delegate] reloadViewFromSavedPrefrences];
//myViewController.h
#import "prefrencesViewController.h"
@interface myViewController : UIViewController <UITabBarDelegate, GetGUIEncodedData, GetPrefrencesViewControllerDelegate> {
// prefrencesViewController set up
prefrencesViewController *pvc;
@property (strong, nonatomic) prefrencesViewController *pvc;
//myViewontroller.h
@synthesize pvc;
- (void)viewDidLoad
{
//..
[pvc setDelegate:self];
}
//Delegate and prefrences.. Saved pressed reload the view here.
-(void)reloadViewFromSavedPrefrences {
NSLog(@"WORKED");
}
任何帮助将不胜感激
【问题讨论】:
-
pvc设置/初始化在哪里? -
哦,废话...我想那是我错过的部分...
-
是的,这就是我错过的部分。我只需要 pvc = [[prefrencesViewController alloc] init];在 myViewControllers viewDidLoad 中
标签: iphone ios objective-c delegates protocols