簡體   English   中英

從UITabBar初始化UIViewController的屬性

[英]Initializing a property of UIViewController from UITabBar

從TabBar單擊時,我需要設置ViewController的屬性。

我嘗試在didSelectViewController執行此操作-但在ViewWillAppear完成后ViewWillAppear它,並且為時已晚

我嘗試這樣做:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

但是viewController是原始的tabBarIndex而不是目標的tabBarIndex

我能做什么?

在深入研究代碼之后,我找到了一種方法:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
    UINavigationController *nav = (UINavigationController *)viewController;
    if ([[nav.viewControllers objectAtIndex:0] isKindOfClass:[DestinationViewController class]])
    {
        DestinationViewController *vc = (DestinationViewController *)[nav.viewControllers objectAtIndex:0];
        vc.foo = 1;
    }

    return YES;
}

如果使用情節提要,則可以設置segue ID,然后:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:YOUR_SEGUE_ID]) {
        YourViewController *controller = segue.destinationViewController;
        controller.someProperty = someProperty;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM