sli*_*kas 31 cocoa-touch objective-c storyboard navigationcontroller ios
我在视图之间正确传递数据时遇到问题,但不是标准方式.
描述我的问题的图片:

我performSegueWithIdentifier两个赛格瑞标识符中的一个,然后我想将数据传递给视图控制器称为"FIRMY"或"Oddzialy".
传递数据代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"sLogowanieFirmy"]) {
FirmyVC *firmyVC = [segue destinationViewController];
firmyVC.tabFirmy = self.tabFirmy;
}
if ([[segue identifier] isEqualToString:@"sLogowanieOddzialy"]) {
OddzialyVC *oddzialyVC = [segue destinationViewController];
oddzialyVC.wybranaFirma = [self.tabFirmy objectAtIndex:0];
}
}
Run Code Online (Sandbox Code Playgroud)
问题是方法[segue destinationViewController]因为segue的destinationViewController是NavigationViewController.
那么传递数据和拥有独立的导航控制器的正确方法是什么?
Mar*_*ams 58
UINavigationController有一个被调用的属性topViewController,它返回位于堆栈顶部的视图控制器.
所以你的prepareForSegue:方法可能看起来像这样......
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"sLogowanieFirmy"]) {
UINavigationController *nav = [segue destinationViewController];
FirmyVC *firmyVC = (FirmyVC *)nav.topViewController;
firmyVC.tabFirmy = self.tabFirmy;
}
// etc...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11479 次 |
| 最近记录: |