1

我有一个带有textbox,pickerviewUIButton(用作单选按钮)的视图。单击提交UIButton后,用户应在另一个视图中显示他输入的详细信息,该视图具有tableView. 我正在使用navigationController导航到另一个视图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
4

4 回答 4

2

您可以使用属性@property 功能。

就像在 view2.h

@property(nonatomic,retain)NSString *name;

在 view2.m

@synthesize name;

在你看来1.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];

}

希望这可以帮助....

于 2013-01-09T05:51:32.633 回答
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 中,它可以包含 UIControls 来呈现存储在其属性中的数据。继续文本示例...

// 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;
}
于 2013-01-09T05:56:09.240 回答
1

您需要在 tableViewController 上设置一些属性。因此,如果您要传递一个字符串。tableViewController 将在 .h 文件中包含以下内容。

 @property (nonatomic, retain) NSString *mystring;

您也可以在 .m 文件中合成此字符串。

@synthesize mystring; 

然后就可以在上面的代码中调用

viewTwo.mystring = @"some value to pass through";

然后,您可以通过调用 self.mystring 访问您在 tableViewController 中传递的值。希望对一些人有所帮助。

于 2013-01-09T05:50:07.533 回答
0

在 tabView.h 类中创建接收器方法

-(init) GetData:(NSString *)textboxString 选择器:(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];
于 2013-01-09T06:06:46.810 回答