2012-01-06 40 views
-2

我有两个UITableViewControllers(连接到UINavigationController)。当我点击第一个控制器上的UITableViewCell时,我创建了一个segue,以便第二个控制器进入视图。我想在第二个视图控制器中包含所选内容上的文本的变量。我该怎么做呢?我尝试过直接传递它,但由于某种原因它不起作用。最简单的方法将属性传递给UITableViewController

回答

0

声明一个属性(如selectedText - 一个NSString)在接收视图控制器(在这种情况下,我们将它称为SecondTableViewController)。下面是代码:

在SecondTableViewController.h:

@interface SecondTableViewController : UITableViewController { 

} 

@property(nonatomic, strong) NSString *selectedText; 

在SecondTableViewController.m:

@implementation SecondTableViewController 
@synthesize messageDetail; 

在你FirstTableViewController.m:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Make sure we are dealing with the proper Segue 
    if ([segue.identifier isEqualToString:@"idOfMySegue"]) { 
     SecondTableViewController *svc = segue.destinationViewController; 
     svc.selectedText = myVarValue; // This can be got from either setting another var in the tableviewcontroller or by just passing the entire object at the selected index of the NSIndexPath.row (if you are populating the tableview with an array. Note you would change the object type of the passed along object from an NSString to whatever the other object is. 
    } 
} 

的prepareForSeque方法您可以将任何数据或对象从一个视图传递到另一个视图。

+0

唯一的问题是我无法访问prepareForSegue(prepareForSegue类中输入的类)中的任何类属性 – blake305 2012-01-07 00:58:22

+0

只要您在FirstTableViewController.m文件中包含对SecondTableViewController的引用,就可以访问这些属性 – 2012-01-07 00:59:30

+0

如果你给我你现在有什么,我会尽力帮你解决问题。 – 2012-01-07 01:01:08

相关问题