gpt4 book ai didi

ios - DetailViewController 未更新动画

转载 作者:行者123 更新时间:2023-11-29 12:50:02 27 4
gpt4 key购买 nike

我有一个 UISplitview Controller (带有主视图和详细 View )。所以,当 detailview加载 viewDidLoad调用名为 [self animateToPosition]; 的函数使用以下代码:

-(void*)animateToPosition
{
NSLog(@"Called Function");
[worldV animateToPosition:MaplyCoordinateMakeWithDegrees(-122.4192, 37.7793) time:1.0];

[self.view setNeedsDisplay];

return 0;
}

现在,第一次运行时,我的 globeViewC正确动画到传入的位置(worldV 已初始化并在 detailviewController 的 viewDidLoad 中创建了一个 all 日志中还打印了“调用的函数”。但是,我有一个 View Controller 并且在 didSelectRowAtIndexPath 中我有以下代码(在文件 masterViewController.m 中)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([[testArray objectAtIndex:indexPath.row]isEqualToString:@"Menu1"]) {
DetailViewController *test=[[DetailViewController alloc]init];
[self addChildViewController:test];
[self.view addSubview:test.view];
[test didMoveToParentViewController:self];
[test animateToPosition];
}
}

当我选择名为 menu1 的单元格时,“调用函数”确实显示在 NSLog 中,但 View 首次加载时发生的动画不再存在。我想知道我是否必须以某种方式重新加载 detailviewcontroller或再次初始化它(但我尝试再次初始化它但没有成功)

希望有人能看到这个并帮助我让它工作。

最佳答案

如果您能展示更多内容,尤其是您如何allocinit 您的worldV 以及您的viewDidLoad.

通常您不会为 SplitView 设置创建新的 DetailViewController。

与其创建一个新的 DetailViewController,不如尝试通过创建一个属性来控制现有的细节 View Controller :

@property(strong, nonatomic) DetailViewController *detailViewController;

和:

self.detailViewController = (DetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];

这里首先要测试的是你的 worldV 是否为 nilanimateToPosition 中的一个简单 NSLog 将揭示答案。

每当您需要调用该方法时,请执行以下操作:

[self.detailViewController animateToPosition];

要随时间从一个坐标到另一个坐标设置动画,您可能需要将 animateToPosition 方法更改为:

-(void)animateToPosition:(MaplyCoordinate)coordinates time:(CGFloat)time

请问您的 MaplyCoordinate 是否是一个对象,我对此表示怀疑。

因此,总而言之,在您的 TableView 的 viewDidLoad 中,获取详细 View Controller 。

didSelectRow 被调用时,使用建议的新方法并以这种方式传递坐标和时间:

[self.detailViewController animateToPosition:coordinates time:1.0];

希望这对您有所帮助。

关于ios - DetailViewController 未更新动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22633562/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com