0

私の他の質問があいまいだったので、これを明確にします。1つのviewControllerにテーブルビューがあり、セルが選択されると、数値がNSUserDefaultsに保存されます。メインの viewController で、この番号を取得し、それを使用してラベルを更新したいと考えています。デバッグを行ったところ、tableView からメインの viewController に戻ると、次のような順序であることがわかりました。

1) メイン ビューの読み込み 2) tableView セル タップの認識 3) NSUserDefaults に保存された数値

メインビューが最後に読み込まれるように順序を変更して、セルをクリックするとメインviewControllerのラベルが変更されるようにするにはどうすればよいですか?

これが私の didSelectRow メソッドのコードです

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
 NSString *pointsPath = [[NSString alloc] initWithFormat:@"totalPoints"];
 NSString *numberFirst = [[NSString alloc] initWithFormat:@"numberFirst"];

int totalPoints = [[NSUserDefaults standardUserDefaults] integerForKey: pointsPath];
int number = [[NSUserDefaults standardUserDefaults] integerForKey:numberFirst];

if([indexPath row] == 1)
{
    NSLog(@"Selected First row");
    if(totalPoints < 10)
    {
        if (number != 0)
        {
            NSLog(@"Did not add a point, but saved");
            [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:numberFirst];
            [[NSUserDefaults standardUserDefaults] synchronize];

        }
        else if (number == 0)
        {
            NSLog(@"Added a Point");
            int newPoints = totalPoints + 1;
            [[NSUserDefaults standardUserDefaults] setInteger:newPoints forKey: pointsPath];
            [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:numberFirst];
            [[NSUserDefaults standardUserDefaults] synchronize];
            int logPoints = [[NSUserDefaults standardUserDefaults]integerForKey:pointsPath];
            NSLog(@"Point Count:%i", logPoints);
        }


    }
4

2 に答える 2

0

コントローラーのビューはオンデマンドで読み込まれます。トリガーviewDidLoadとなるのは、他の誰かが演奏することcontroller.viewです。ビュー コントローラーを既にコンテナー ビューにプッシュしている場合、またはそれ以外の方法で表示を開始している場合は、それが担当のエージェントになります。

viewDidLoad、および iOS 5 以下viewDidUnloadでは、ビューの一部をプログラムで作成する場合に必要なフックを提供することを目的としています。

コントローラーが表示されていない間に変更された可能性のある設定を考慮しようとしている場合は、おそらく を使用する必要がありますviewWillAppear:。これは、不可視から可視にいつ移行しようとしているのかを判断するための意図的な方法です。

2 つのものの間に完全にアクティブなリンクが必要な場合は、リッスンする番号を表示し、NSUserDefaultsDidChangeNotification必要に応じてビューを更新するビュー コントローラーを設定します。

于 2013-08-21T20:27:52.413 に答える
0

誰かがこの問題を抱えている場合、私はついに問題を発見しました...ユーザーがセルを選択したときに、それがモーダルではなくプッシュセグエであることを確認する必要があります...これはとてもイライラするので、とてもシンプルでした!!

于 2013-08-22T17:39:15.467 に答える