0

UITextFieldtitleViewControllerのオブジェクト内のテキストを設定および取得しようとして立ち往生しています。

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 に値を取得させます。

4

1 に答える 1

0

問題は、ビューがロードされる前にTextFieldオブジェクトを更新しようとしたことでした。ビューをロードしたポイントの後にメソッド呼び出しを移動すると、問題が修正されます。何が正しく、何が間違っていたかを反映するように質問を更新しました。

同様の問題があるすべてのことに注意してください。ビューのUIObject部分の値を更新する前に、ビューが表示されていることを確認してください。ビューが表示されていない状態で値を更新する必要がある場合は、インスタンス変数を使用し、UIObjectにviewDidLoadメソッドでそれらの値を取得させます。

于 2012-07-13T04:16:48.057 に答える