UITextField
titleViewControllerのオブジェクト内のテキストを設定および取得しようとして立ち往生しています。
titleViewController オブジェクトへの参照を持つ Journal オブジェクトがありますが、 のテキスト値を設定できないようですUITextField
。
titleViewController に UITextField オブジェクトへのアウトレットがあり、Journal はそれを見ることができますが、コードを記述して値を設定すると、実行時に何も起こりません。
XCode またはログにポップアップするエラーはありません。同じジャーナルによって管理されている他のそのようなviewControllerのカスタムメソッドにアクセスするためのセットアップが機能するため、機能するはずです。
-編集-
リクエストされたコードサンプルは次のとおりです。
//Get viewController from Array
TitleVC *titlePage = [_PageArray objectAtIndex:0];
//Get string from Dictionary
NSString *test = [_saveDictionary objectForKey:@"Name"];
//This is one of the attempts to set the UITextField
//FIXED by Tomy211(but still does not work)
[titlePage.textName setText:test];
//This is attempting dot notation
titlePage.textName.text = test
titlePage.textName = test //Wrong I know but had to test
//Also made sure test was a proper string
NSLog(test) //Displayed "Dan" as Expected
これは、次のコードを使用してストーリーボードから titleVC への参照にアクセスした Journal.m にあります。
-(UIViewController *)loadView:(NSString *)viewID{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:viewID];
return viewController;
}
そのメソッドから返された ViewController は、スクロールビューでビューを表示するために使用されます。この方法で ViewControllers からメソッドにアクセスする際に問題はありませんでした。
私がやりたいことは、Journal.m に設定させて、に接続されたアウトレットである textName から値を読み取らせることだけですUITextField
。
-アップデート-
確認したところ、textField の値を読み取ることはできますが、書き込むことはできないことがわかりました。
-最終更新-
コードに問題が見つかりました。コードは正しかった (Tomy211 による訂正を除く) が、問題はコードを呼び出していた場所にあった。ビューが表示される前にメソッドを呼び出していたので、ビューが表示されるとデフォルト値に戻ります。
同様の問題を抱えているすべての人への注意: ビューの UIObject 部分の値を更新する前に、ビューが表示されていることを確認してください。ビューが表示されていない状態で値を更新する必要がある場合は、インスタンス変数を使用し、viewDidLoad メソッドで UIObject に値を取得させます。