你將不得不使用委派才能看到在主視圖的變化,當你做的酥料餅內不同的動作。首先,你需要創建酥料餅的控制器頭文件中的協議:
#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