2013-04-17 26 views
0

我有2个UIViewControllers,我可以在它们之间传递值而没有任何问题。当我尝试将值传递给第三个视图(UITableViewController)时,问题就出现了。 这里是我的代码通过故事板在ios上的视图之间传递值的问题

所有的连接都正确设置,则tableview中被这里所说的:

- (IBAction)goToTableView:(id)sender { 
    TableMovieViewController *vc=[self.storyboard instantiateViewControllerWithIdentifier:@"TableMovieViewController"]; 
    vc.finalResult.text=stringFromFirstView; 
    [self presentViewController:vc animated:YES completion:nil]; 
} 

vc.finalResult.text具有举例"Test Call",我验证和价值是存在的。

现在的表视图文件:

.h文件中:

@property(strong, nonatomic)UITextField *finalResult; 

.m文件:

@synthesize finalResult; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UINavigationBar *nav = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, 320, 40)]; 
    UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:finalResult]; 
    [nav pushNavigationItem:navItem animated:FALSE]; 
    [self.view addSubview:nav]; 
} 

finalResult永远不会设定从之前传递的值。

任何想法

感谢 罗德里戈

+0

尝试,但仍然是相同的,当我把调试时,finalResult.text我们blank这样的事情 V finalResult =(的UITextField *)0X000000 –

+0

你没有mostlikely分配的UITextField。如果您愿意,请阅读编辑。您可以做的另一件事是为该测试目的制作该UINavigationItem标题的NSString属性;) –

回答

2

变化:

UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:finalResult]; 

有了:

UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:finalResult.text]; 

finalResultUITextField型的,而不是NSStringinitWithTitle:要求输入NSString,而不是现在设置的UITextField

编辑: 当我读到这意味作为对我的回答你说,UITextField *finalResult是零价值的评论编辑。这可能是因为你没有像你应该那样分配和初始化UITextField。

您至少需要在设置文本前设置finalResult = [[UITextField alloc] init];。我建议你在UITableViewController的init函数中执行它。

+0

或者如果UITextField finalResult在故事板中,则应确保它已连接到它的插座。 – matsr

+0

我认为,但在这种情况下,会有一个IBOutlet在UITextField之前。因为他没有在他的示例代码中说出来,所以我不认为它需要答案。 –

+0

是的,你是正确的,但如果他忘记了将IBOutlet添加到代码中,这是可能的。无论哪种方式,问题是(很有可能),正如你所说,“finalResult”是零。 – matsr

相关问题