![](/img/trans.png)
[英]How to get UIViewController of a UIView's superview in iOS?
[英]Sending value on Button click from UIView to its superview's superview(UIViewController) -iOS
我有一个称为HomeViewController
的ViewController。 它的子视图是ActivityView
(UIView)。 ActivityView的子视图是ActivityCard
(UIView)。 在ActivityCard中,我有一个名为Enter的按钮。 单击它,我需要将所有文本字段的值从ActivityCard xib发送到HomeViewController并从那里调用API。 我之前从未使用过xib,因此无法管理这种情况。 任何帮助将不胜感激!
编辑:
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时,已编写此代码。
有很多方法可以做到,我将向您展示我认为这是最简单的方法。
property
的Enter Button
和property
在所有的文本框ActivityCard.h
在HomeViewController
,使用下面的代码为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 }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.