ios在另一个视图的tableview中导航和显示数据

时间:2013-01-09 05:45:01

标签: iphone ios uinavigationcontroller

我的视图包含textboxpickerviewUIButton(作为单选按钮)。 点击提交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

4 个答案:

答案 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];