2012-10-12 81 views
0

我必須從ViewControllerA傳遞一個布爾值給ViewControllerB。在ViewControllerA我把作爲一個屬性:在ViewController之間傳遞布爾值

@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){ 
     //....... 
    } 

不起作用。爲什麼?

+0

你在哪裏給viewControllerB的'viewControllerA'屬性賦值什麼? –

回答

1

在viewController B中創建一個BOOL屬性.. BOOL setFlag;綜合它的ViewController B,在視圖控制器一個

現在,你執行推

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

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

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

是否因爲你應該修改你的第二行爲viewControllerB。fromRootViewController? (而不是自己)

0

如果您想知道您的視圖控制器的起源,你不應該使用屬性。在你的導航控制器數組中使用基本的導航(在你的類中想要知道推動的起源)。

NSArray *controllers = [self.navigationController viewControllers]; 
UIViewController *lastController = [controllers objectAtIndex:[controllers count]-2]; 
if([controller isKindOfClass:[YourDesireCheckController class]]) 
    return YES; 
return NO; 
相關問題