3

NavigationController があり、タブの 1 つが ViewController をロードすることになっています。

このViewController(1)は、「viewDidLoad」にロードされると、いくつかの処理を実行してから、新しいViewController(2)をプッシュします。問題は、ViewController (1) が既に viewDidLoad を通過した後、アプリが再起動されない限り、再度通過しないことです。

これに対する賢い方法を参照していただけますか?

これが私が実際にやっていることです:

- (void)viewDidLoad
{
    // Keep track of cash using NSUserDefaults
    BOOL dreceived[63];
    int rightData;

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    //Load cash switches
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    NSData *data = [prefs objectForKey:@"dreceived"];
    memcpy(&dreceived, data.bytes, data.length);

    for(int n = 72; n >= 1; n = n - 1)
    {
        if(dreceived[n-1]==1)
        {
            rightData = n;            

        }
    }
    NSLog(@"Right Data %d", rightData);

    CashItem *c = [cashflow objectAtIndex:rightData];

    // Go for details
    CashDetailedViewController *cdetail = [[[CashDetailedViewController alloc] init] autorelease];
    cdetail.cash = c;

    cdetail.navigationItem.hidesBackButton = YES;
    [self.navigationController pushViewController:cdetail animated:YES];

}

問題は、このコードが二度と呼び出されないことです。タブを 2 回タッチすると、空白のビューが表示されます (元の xib ビュー)。

ありがとう!

4

3 に答える 3

7

を使用したいと思われますviewWillAppear。ビュー コントローラが画面上に表示されるたびに呼び出されます。

ただし、投稿した内容に基づいて、自分のしていることを再考することをお勧めします. 別のビュー コントローラーをすぐに表示するビュー コントローラーを使用すると、ユーザー エクスペリエンスが混乱する可能性があります。

于 2013-03-22T15:15:54.210 に答える
0

- (void)viewWillAppear代わりにコードを入れてください

于 2013-03-22T15:12:46.623 に答える