我的项目遇到了以下问题:
我写了一个类,它是UIView的子类:
1 - 一个按钮
2 - 表格视图
3 - 文本字段
我已经创建了该类的对象,并将该对象添加到uiviewcontroller的视图中。当我单击按钮时,使表格视图显示所有国家/地区的列表并单击表格视图的单元格,文本字段将获取单元格的值。当我触摸tableview的单元格时,我想检测事件。我怎样才能做到这一点?请帮帮我,提前谢谢。
P / S:tableview是contentView的子视图。层次结构如下:
ViewController - ScrollView - contentView - (View1,View2 ...)
答案 0 :(得分:0)
就像人们在评论中所说的那样,您只需要#include <stdio.h>
#include <string.h>
int main()
{
char married[3];
unsigned long t;
int f;
scanf("%f", &t);
scanf("%d", &f);
printf(" For the following question: Enter 0 if false. Enter anything but 0 if true. Are you married? %s", married);
if (f == 0)
{
married == "no";
}
else
married == "yes";
return 0;
}
和delegate
。如果您以编程方式执行此操作,则需要在代码中添加许多内容,例如data source
,并在<UITableViewDelegate, UITableViewDataSource>
上调用它们。然后你需要实现一些方法。 Apple有关于所有类和方法的大量文档,请查看它们。您需要viewDidLoad
。
希望我能帮忙
答案 1 :(得分:0)
UITableView
有委托协议,根据您的需要,您只需实施
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
您会知道indexPath
点击的位置,因此您知道位置,然后就可以随心所欲。
如果您想获得相应的单元格,请使用
- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
只需将indexPath
从didSelectRowAtIndexPath
传递到cellForRowAtIndexPath
答案 2 :(得分:0)
这是你想要做的吗?
你没有提供代码或其他东西..所以,这只是我对你正在尝试的事情的假设..嗯..
请提供更多详情...如有必要,请编辑您的问题..
//viewController.h
@interface viewController : UIViewController
@property (nonatomic) NSMutableArray *selectedIndexs;
// use this array as your dataSource for the secondTableView (popup tableView?)
@end
//viewController.m
@implementation viewController
// codes..
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
/*
you need to store the countries indexPath to cell the name/details
in this example i will just get the `.textLabel.text`
*/
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath/*current selected indexPath*/];
if ([self.selectedIndexs containsObject:cell.textLabel.text])
{
// [self.selectedIndexs removeObject:cell.textLabel.text]; ]> delete if already in the array
// return; ]> if you dont want to remove the object just return..
}
else
[self.selectedIndexs addObject:cell.textLabel.text]; // add the country if not exist in the array
}
- (void)showSelectedCountries:(UIButton *)sender //this is the number 1 from the image (Button)
{
UIView *customViewForSelected = [[UIView alloc] init];
// then if you have declared a property for `dataSource` inside your 'customViewForSelected' just:
customViewForSelected.yourSelectedsDataSource = selectedIndexs;
// then show the view with the table inside which contains only the table.. correct?
[self.view addSubview:customViewForSelected]; // i just added as subview because i dont know how you call it..
}
@end
希望,你觉得这很有用..干杯......
答案 3 :(得分:0)
我创建了一个类:UIView
是button
的子类,包含@interface DropdownListViewCountries : UIView<UITextFieldDelegate, UITableViewDelegate>
,文本字段和tableview。
@implementation DropdownListViewCountries
。在didSelectRowAtIndexPath
,我实施了IndividualPersonalData
然后我创建了课程:UIViewController
是IndividualPersonalData
的子视图。该类包含进度视图栏。
然后我创建了一个DropdownListViewCountries对象并添加到tableview
。
如何触摸{{1}}的单元格以更改进度视图值?
答案 4 :(得分:0)
谢谢大家的帮助。现在为了我的目的,我发现下面的代码来检测事件:
[self.firstDropdownListView.countriesTextField addObserver:self forKeyPath:@"text" options:0 context:nil];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if([keyPath isEqualToString:@"text"] && object == self.firstDropdownListView.countriesTextField)
{
// text has changed
LogDebug(@"HELLO WORLD");
}
}