你将不得不使用委派才能看到在主视图的变化,当你做的酥料饼内不同的动作。首先,你需要创建酥料饼的控制器头文件中的协议:
#import <Foundation/Foundation.h>
@class MyPopoverController;
@protocol MyPopoverDelegate
- (void)valueChanged:(NSString*) newVal;
@end
@interface MyPopoverController: UIPopoverController
@property (weak) id<MyPopoverDelegate> delegate;
@end
然后在.M你实现这样的:
- (void) someActionOccured
{
if([self.delegate respondsToSelector:@selector(valueChanged:)]){
[self.delegate valueChanged:valueYouWantToSendBack];
}
}
请记住,在你的主类,你必须实现MyPopoverDelegate
协议:
@interface MainViewController: UIViewController <MyPopoverDelegate>
当你实例化你的酥料饼的控制器:
/*
** inside MainViewController.m
*/
// remember to assign it's delegate
MyPopoverController *popoverController = [MyPopoverController alloc] init];
popoverController.delegate = self;
而且,你必须执行协议的方法:
/*
** inside MainViewController.m
*/
- (void)valueChanged:(NSString*) newVal
{
// process the string and display it where you need it
}
来源
2013-07-02 18:55:53
Teo
我看出你是一个初学者(没有与任何问题),但在我看来SO不是地方,你在没有任何先前的研究的情况下直接发布问题,我搜索了你的问题,并且有很多SO帖子可以告诉你如何去做你需要的东西。我想你应该看看他们,尝试其中的一些,如果某些事情不能按照你的预期工作,那么就在SO上发布一个问题。 – danypata
是的,就像你说的,我是初学者。我做了你所说的,我尝试了很多,我对自己说:这是我的最后一枪,这就是为什么我在这里发布我的问题。但是,无论如何感谢:) –
我写了我的第一个评论作为一个建议,它并没有打扰我,你发布了一个关于这个问题,如果我不喜欢这个问题,我不会回答它,但其他SO用户赢得' t喜欢它,你会最终得到封闭的问题或downvotes;) – danypata