0

ViewControllerAからViewControllerBにブール値を渡す必要があります。ViewControllerAに、プロパティとして配置します。

 @property (nonatomic, assign)BOOL fromViewControllerA;

次に、ViewControllerBを開きます。

   ViewControllerB * viewControllerB = [[ViewControllerB alloc]initWithNibName:@"ViewControllerB" bundle:nil];

    self.fromRootViewController = YES;

    [self.navigationController pushViewController:viewControllerB animated:YES];

ViewControllerBで、ViewControllerAをインポートし、プロパティを作成しました。

   @property (nonatomic, strong) ViewControllerA *viewControllerA

後でViewDidLoad()で

    if (viewController.fromViewController){
       //.......
    }

動作しません。なんで?

4

3 に答える 3

1

viewControllerBでBOOLプロパティを作成しますBOOL setFlag。ViewControllerBで合成します。

プッシュを実行するViewControllerAで

 ViewControllerB * viewControllerB = [[ViewControllerB alloc]initWithNibName:@"ViewControllerB" bundle:nil];

    self.fromRootViewController = YES;
    viewControllerB.setFlag = YES;  //set the value here 

    [self.navigationController pushViewController:viewControllerB animated:YES];
于 2012-10-12T08:22:15.603 に答える
0

2行目をviewControllerB.fromRootViewControllerに変更する必要があるためですか?(自己の代わりに)

于 2012-10-12T08:14:49.243 に答える
0

ビューコントローラの原点を知りたい場合は、プロパティを使用しないでください。ナビゲーションコントローラー配列で基本的なナビゲーションを使用します(プッシュの発生源を知りたいクラスで)。

NSArray *controllers = [self.navigationController viewControllers];
UIViewController *lastController = [controllers objectAtIndex:[controllers count]-2];
if([controller isKindOfClass:[YourDesireCheckController class]])
    return YES;
return NO;
于 2012-10-12T08:50:00.263 に答える