2013-07-02 94 views
0

我正在努力做一件简单的事情(至少我认为它很简单),但我无法做到!从视图控制器发送数据到另一个

我会尽量解释一下。

这是一个显示信息的应用程序。当用户在视图中时,他可以点击一个按钮,该按钮显示popoverview,他可以在其中选择他想知道的信息。

实际上,当用户单击popoverview的按钮时,我无法创建更改我在主视图中创建的UILabel文本的操作。

任何人有任何想法?

只为你知道:主视图我为它创建了一个类,也为popoverview创建了一个类。虽然,我在XIB文件中创建了它的设计的弹窗视图(我不知道这是否重要,这就是为什么我要这样做)。

那么,我希望你们能够理解我的问题。

在此先感谢。

费尔南多。

+2

我看出你是一个初学者(没有与任何问题),但在我看来SO不是地方,你在没有任何先前的研究的情况下直接发布问题,我搜索了你的问题,并且有很多SO帖子可以告诉你如何去做你需要的东西。我想你应该看看他们,尝试其中的一些,如果某些事情不能按照你的预期工作,那么就在SO上发布一个问题。 – danypata

+0

是的,就像你说的,我是初学者。我做了你所说的,我尝试了很多,我对自己说:这是我的最后一枪,这就是为什么我在这里发布我的问题。但是,无论如何感谢:) –

+0

我写了我的第一个评论作为一个建议,它并没有打扰我,你发布了一个关于这个问题,如果我不喜欢这个问题,我不会回答它,但其他SO用户赢得' t喜欢它,你会最终得到封闭的问题或downvotes;) – danypata

回答

0

刚刚创建的视图 - 控制属性,并从消费者(其它视图 - 控制)访问

+0

谢谢你,诗人 –

0

你将不得不使用委派才能看到在主视图的变化,当你做的酥料饼内不同的动作。首先,你需要创建酥料饼的控制器头文件中的协议:

#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 
} 
+0

天哪,谢谢你!我想尝试一下,但它看起来并不像我想的那样复杂。非常感谢你! –

相关问题