2013-04-17 66 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

相關問題