如何使工作 preparForSegue :sender: XCode 6?
How to make work preparForSegue :sender: XCode 6?
在我的应用中,我使用段在三个视图中切换。每个段都用容器视图表示,它们根据段隐藏或显示。这就是我的设计的工作原理,而且效果很好。你可以找到下面的图片,这样你可以更了解结构:
我无法将在视图控制器中创建的实例(即用户)提供给分段容器的视图控制器。我在用户中创建了用户并为其分配了值。用户实例有值,我检查过了。所以,像往常一样用 segue,我尝试了 prepareForSegue:sender 方法来实现我的目的。在 table 视图的 viewLoad 方法中(您可以找到 table 视图:它们中的每一个都附加到具有段的视图控制器中的自己的容器。有 3 个容器。)的用户实例table 视图为空。我不能给它,基本上。视图控制器不应该传递用户值吗?它可能是容器视图,但我仍然认为它应该是:) 不管怎样,请在下面找到我到目前为止所写的内容:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
DovizTableViewController *controller = (DovizTableViewController *)navController.topViewController;
controller.user = self.user;
}
您将删除代码的发件人部分。
它应该是这样的:
- (void)prepareForSegue:(UIStoryboardSegue *)segue{
//your code
//check if the next view exists by checking for the id
if ([[segue identifier] isEqualToString:@"Segue_Name"])
{
DovizTableViewController *controller = [segue destinationViewController];
controller.user = self.user;
}
}
试试这个。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
{
// Get reference to the destination view controller
DovizTableViewController *controller = [segue destinationViewController];
// Pass any objects to the view controller here, like...
controller.user = self.user;
}
}
希望对您有所帮助。
在我的应用中,我使用段在三个视图中切换。每个段都用容器视图表示,它们根据段隐藏或显示。这就是我的设计的工作原理,而且效果很好。你可以找到下面的图片,这样你可以更了解结构:
我无法将在视图控制器中创建的实例(即用户)提供给分段容器的视图控制器。我在用户中创建了用户并为其分配了值。用户实例有值,我检查过了。所以,像往常一样用 segue,我尝试了 prepareForSegue:sender 方法来实现我的目的。在 table 视图的 viewLoad 方法中(您可以找到 table 视图:它们中的每一个都附加到具有段的视图控制器中的自己的容器。有 3 个容器。)的用户实例table 视图为空。我不能给它,基本上。视图控制器不应该传递用户值吗?它可能是容器视图,但我仍然认为它应该是:) 不管怎样,请在下面找到我到目前为止所写的内容:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
DovizTableViewController *controller = (DovizTableViewController *)navController.topViewController;
controller.user = self.user;
}
您将删除代码的发件人部分。
它应该是这样的:
- (void)prepareForSegue:(UIStoryboardSegue *)segue{
//your code
//check if the next view exists by checking for the id
if ([[segue identifier] isEqualToString:@"Segue_Name"])
{
DovizTableViewController *controller = [segue destinationViewController];
controller.user = self.user;
}
}
试试这个。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
{
// Get reference to the destination view controller
DovizTableViewController *controller = [segue destinationViewController];
// Pass any objects to the view controller here, like...
controller.user = self.user;
}
}
希望对您有所帮助。