我的视图包含textbox
,pickerview
和UIButton
(作为单选按钮)。
点击提交UIButton
后,系统会向用户显示他在另一个tableView
的视图中输入的详细信息。我使用navigationController
使用tableview
导航另一个视图。
导航工作正常,但如何在tableview中显示view1
view2
上输入的数据?
以下是我的代码:
.M
- (void) goToViewTwo
{
tableViewController *viewTwo = [[tableViewController alloc] initWithNibName:@"tableViewController" bundle:[NSBundle mainBundle]];
self.tabView = viewTwo;
[self.navigationController pushViewController:self.tabView animated:YES];
}
如何将数据分配给tabView?
编辑以包含tableViwController的.h
#import <UIKit/UIKit.h>
@interface tableViewController : UIViewController
@property(nonatomic,retain)NSString *name;
@property(nonatomic,retain)UILabel *lbl;
@property (strong, nonatomic) IBOutlet UILabel *textLabal;
@end
答案 0 :(得分:2)
您可以使用属性@property功能。
与view2.h一样
@property(nonatomic,retain)NSString *name;
在view2.m
中@synthesize name;
在你的view1.m
中 - (void) goToViewTwo
{
tableViewController *viewTwo = [[tableViewController alloc] initWithNibName:@"tableViewController" bundle:[NSBundle mainBundle]];
self.tabView = viewTwo;
viewTwo.name=textbox.text;
[self.navigationController pushViewController:self.tabView animated:YES];
}
希望这会有所帮助......
答案 1 :(得分:2)
就像你正在做的那样,除了在推动下一个视图控制器之前,在它上面设置一个属性。例如,要在viewTwo上显示viewOne中的文本,viewTwo将需要一个名为(类似于)textFromViewOne的字符串属性。
tableViewController *viewTwo = [[tableViewController alloc] initWithNibName:@"tableViewController" bundle:[NSBundle mainBundle]];
// assume this vc has an outlet to it's text field called viewOneTextField
viewTwo.textFromViewOne = viewOneTextField.text;
// not sure why you're saving a ref to this new vc, when do you use it?
self.tabView = viewTwo;
// you don't need it here
[self.navigationController pushViewController:viewTwo animated:YES];
现在,在第二个VC中,它可以包含UIControl来显示存储在其属性中的数据。继续文本示例......
// assume you know how to create properties on the "tableViewController" class (not a great name, btw)
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// assume you have a label called label
label.text = self.textFromViewOne;
}
答案 2 :(得分:1)
您需要在tableViewController上设置一些属性。所以如果你传递一个字符串。 tableViewController在.h文件中有以下内容。
@property (nonatomic, retain) NSString *mystring;
您也可以在.m文件中合成此字符串。
@synthesize mystring;
然后你可以调用上面的代码
viewTwo.mystring = @"some value to pass through";
然后,您可以通过调用self.mystring来访问tableViewController中传递的值。希望有所帮助。
答案 3 :(得分:0)
在tabView.h类中创建接收方法
- (init)GetData:(NSString *)textboxString picker:(NSString *)pickerValue;
创建Intance变量以接收数据
NSString * str1 NSString * str2
在tabView.m
中-(init) GetData:(NSString *)textboxString picker:(NSString *)pickerValue
{
str1 = [textboxString copy];
str2 = [pickerValue copy];
return self;
}
现在 - (void)goToViewTwo方法
调用您在tabtwo类
中创建的方法[viewTwo init:textboxString picker:pickerValue];