0

基本的に、私はTabBarControllerといくつかのサブビューをこのコントローラーに接続しています。TabBarControllerには、サブビューでアクセスしたいいくつかのプロパティがあります。

これが私が持っているものです:

MyTabBarControllerの.m

-(void)setDetails:(id)sender
{
    self.myVariable = @"This is a test";
    NSLog(@"Here I set my variable");
}

- (void)viewDidLoad
{
    NSLog(@"[LOAD] My Tab Bar Controller");
    [self setDetails:nil];
}

最初のサブビューの.m

- (void)viewDidLoad
{
    NSLog(@"[LOAD] FirstViewController");

    MyTabBarController *myTBC = (MyTabBarController *)self.tabBarController;
    self.headerName.text = myTBC.myViariable; // Here I just set the UILabel's text
    NSLog(@"Header name = %@", self.headerName);
}

これが私がログに持っているものです:

2012-08-07 11:43:23.001 MyFirstproject[23632:15203] [LOAD] My Tab Bar Controller
2012-08-07 11:43:23.012 MyFirstproject[23632:15203] [LOAD] FirstViewController
2012-08-07 11:43:23.072 MyFirstproject[23751:15203] Header name = (null)
2012-08-07 11:43:23.116 MyFirstproject[23751:15203] Here I set my variable

私の質問は次のとおりです。ログからわかるように、MyTabBarControllerのviewDidLoad関数はFirstViewControllerの関数のに呼び出されます。ただし、 MyTabBarControllerの関数は、FirstViewControllerの関数のsetDetailsに呼び出されているようです。viewDidLoad

どうすればこれが可能ですか?ここで私が間違っていることはありますか?

ありがとう !

4

1 に答える 1

1

のコードを代わりにメソッドにfirstViewController入れてみてくださいviewDidAppearviewDidLoad

ハッピーコーディング:)

そして、これら2つの違いについては、Appleの開発者サイトでそれに関するドキュメントをチェックしてください:)

viewDidLoadビューの読み込み時に正式に1回呼び出す

そしてviewDidAppear、ビューが画面に表示されようとしているときはいつでも呼び出します:)

ハッピーコーディング:)

于 2012-08-07T10:06:49.940 に答える