簡體   English   中英

如何設置要在UITabBarController中加載的UIViewController的屬性?

[英]How can you set a property of a UIViewController that is about to load in a UITabBarController?

我正在通過情節提要加載UITabBarController,如下所示:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"EventsAdmin" bundle:nil];
[self.navigationController pushViewController:[sb instantiateInitialViewController] animated:YES];

初始視圖控制器是uitabbarviewcontroller,但是我想在每個加載的視圖控制器上設置一個屬性。 我怎樣才能做到這一點?

您可以通過以下方式實現:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"EventsAdmin" bundle:nil];

id vc = [sb instantiateInitialViewController];
[self.navigationController pushViewController: vc animated: YES];

if ([vc isKindOfClass: [UITabBarController class]])
{
    for (UIViewController *controller in [(UITabBarController *)vc viewControllers])
    {
       // set your property
    }
}

在循環中,應檢查controller是否是要修改其屬性的視圖控制器類的實例。

或者..您可以聲明一個協議,並為這些模式viewControllers提供類型的屬性

`IBOutlet id <myProtocol> delegate

並將它們連接到情節提要中的根視圖控制器。 然后,模態viewController可以從其viewWillAppearAnimated中查詢委托:然后在您的rootViewController中,您將擁有一個(作為myProtocol的一部分)

-(void)setMyStuffUp:(UIViewController *)modalViewcontroller{


if ([modalViewController isKindOfClass:[viewControllerOne class]]){

//set stuff

}elseIf ( etc == etc){

//setOtherStuff..

}



}

暫無
暫無

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

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