2017-11-11 7 views
0

私はHomeViewControllerというViewControllerを持っています。サブビューは(UIView)です。 ActivityViewのサブビューはActivityCard(UIView)です。 ActivityCardには、Enterと呼ばれるボタンがあります。 ClickでActivityCard xibからHomeViewControllerにすべてのテキストフィールドの値を送信し、そこからAPIを呼び出す必要があります。私はこのシナリオを管理することができない前に、xib'sで働いたことがありません。どんな助けでも大歓迎です!ボタンをクリックすると値を送信するUIViewからスーパービューのスーパービュー(UIViewController)-iOS

EDIT:

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

私はそれが最も簡単な方法だと思う方法を表示する多くの方法があります。

  • HomeViewControllerActivityCard.h
  • にすべてのテキストフィールドのためのEnter Buttonpropertypropertyの作成は、以下の私のコードを使用してEnter Buttonのためのアクションを追加します。

    [self.activityView.cardView enterButton addTarget:self action:@selector(enterButtonDidTouch) forControlEvents:UIControlEventTouchUpInside]; 
    
  • メソッドが呼び出され何とかなっていませんHomeViewController.m名前enterButtonDidTouch

    - (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

関連する問題