2017-11-11 278 views
0

我有一个叫做HomeViewController的ViewController。它的子视图是(UIView)。 ActivityView的子视图是ActivityCard(UIView)。在ActivityCard中,我有一个名为Enter的按钮。在它的点击我需要将所有文本域的值从ActivityCard xib发送到HomeViewController并从那里调用一个API。我以前从未与xib合作过,因此无法管理这种情况。任何帮助将不胜感激!发送按钮上的值点击从UIView到它的超级视图的超级视图(UIViewController)-iOS

编辑:

ActivityCard.h

@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此代码已被写入。

回答

1

有很多方法可以做到这一点,我会告诉你一种方式,我认为这是最简单的方法。

  • ActivityCard.h
  • HomeViewController添加动作为您Enter Button使用下面我的代码创建Enter Button您所有的文本框的propertyproperty

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

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

的方法在某种程度上是没有得到所谓的创建方法。任何我可能会缺少的东西? – Dia

+0

当我尝试将标签文本从HomeViewController设置为ActivityCard时,它没有正确设置值。我试过了:[_viewActivity.card.lblActivityCount setText:@“11”]; – Dia

+0

正如我所见,你做对了。你能告诉我你是如何实施它们的吗? @Dia – trungduc

相关问题