将按钮点击时的值从UIView发送到其superview';s superview(UIViewController)-iOS

将按钮点击时的值从UIView发送到其superview';s superview(UIViewController)-iOS,ios,objective-c,uiview,uiviewcontroller,delegates,Ios,Objective C,Uiview,Uiviewcontroller,Delegates,我有一个名为HomeViewController的ViewController。它的子视图是活动视图(UIView)。ActivityView的子视图是ActivityCard(UIView)。在ActivityCard中,我有一个名为Enter的按钮。单击后,我需要将所有文本字段的值从ActivityCard xib发送到HomeViewController,并从那里调用API。我以前从未与xib合作过,因此无法管理此场景。任何帮助都将不胜感激 编辑: 活动卡 @interface Activ

我有一个名为
HomeViewController
的ViewController。它的子视图是活动视图(UIView)。ActivityView的子视图是ActivityCard(UIView)。在ActivityCard中,我有一个名为Enter的按钮。单击后,我需要将所有文本字段的值从ActivityCard xib发送到HomeViewController,并从那里调用API。我以前从未与xib合作过,因此无法管理此场景。任何帮助都将不胜感激

编辑:

活动卡

@interface ActivityCard : UIView


- (IBAction)actionEnterClick:(id)sender;
@property (weak, nonatomic) IBOutlet UILabel *lblActivityCount;
@property (weak, nonatomic) IBOutlet UIButton *enterButton;

@end
ActivityView.h

@interface ActivityView : UIView

@property (strong) ActivityCard *card;
@property (weak, nonatomic) IBOutlet iCarousel *carousel;

@end
ActivityView.m

- (UIView *)carousel:(__unused iCarousel *)carousel viewForItemAtIndex:(NSInteger)index reusingView:(UIView *)view
{
if (view == nil)
    {
        _card = (ActivityCard*) [[[NSBundle mainBundle] loadNibNamed:@"ActivityCard" owner:nil options:nil] objectAtIndex:0];

        _card.frame = CGRectMake(0, 0, 280.0, 350.0);
        _card.layer.cornerRadius = 10.0f;
        view = _card;
    }
    return view;
}
HomeViewController.h

@interface HomeViewController : UIViewController

@property (strong) ActivityView *viewActivity;

@end
HomeViewController.m

_viewActivity = (ActivityView*) [[[NSBundle mainBundle] loadNibNamed:@"ActivityView" owner:nil options:nil] objectAtIndex:0];
    _viewActivity.frame = CGRectMake(0.0f, 0.0f, _viewContainer.frame.size.width, _viewContainer.frame.size.height);
    [_viewActivity updateActivityUI];

    for (UIView *child in _viewContainer.subviews) {
        [child removeFromSuperview];
    }
    [_viewContainer addSubview:_viewActivity];

    [_viewActivity.card.enterButton addTarget:self action:@selector(enterButtonDidTouch) forControlEvents:UIControlEventTouchUpInside];

    [_viewActivity.card.lblActivityCount setText:@"11"];

这段代码是在我们需要点击按钮加载ActivityView时编写的。

有很多方法可以做到这一点,我将向您展示一种我认为最简单的方法

  • ActivityCard.h
  • HomeViewController
    中,使用下面的“我的代码”为您的
    Enter按钮添加操作

    [self.activityView.cardView enterButton addTarget:self action:@selector(enterButtonDidTouch) forControlEvents:UIControlEventTouchUpInside];
    
  • HomeViewController.m
    name
    enterButtondedTouch

    - (void)enterButtonDidTouch {
        NSString *textOfTextField1 = self.activityView.activityCard.textField1.text;
        // With the same way you can get others text of text fields and use them
    }
    

该方法不知何故没有被调用。我可能缺少什么?当我尝试将标签文本从HomeViewController设置为ActivityCard时,它没有正确设置值。我试过:[[u viewActivity.card.lblActivityCount setText:@“11”];如我所见,你做得对。你能告诉我你是如何实现它们的吗@Dial我已经编辑了我的问题并把所有的代码都放在那里了。我想,你有不止一张活动卡。在这种情况下,您应该为
活动卡
创建
委托