gpt4 book ai didi

iphone - 如何在包含在 TabBarController 的另一个选项卡中的 NavigationController 中推送 View ?

转载 作者:行者123 更新时间:2023-11-29 13:49:48 25 4
gpt4 key购买 nike

我有一个带有 2 个选项卡的 TabBarController,一个是 MapView,另一个是 NavigationController 中的简单 TableView。两者都显示来自同一来源的数据。如果点击表中的任何数据,我将 DetailViewController 添加到 NavigationController 并显示更多详细信息。现在在 MapView 上,我还想在点击 map 中的数据时打开此 DetailViewController。最好的方法是什么?我用 Notification 尝试了一些,但这效果不佳,因为 TableViewController 在 Notification 发送后完成加载(并注册为观察者)。

这是我的代码:

map View Controller :

- (IBAction)goToNearestEvent:(id)sender {
if (currentNearestEvent) {
[[self tabBarController] setSelectedIndex:1];

NSDictionary *noteInfo = [[NSDictionary alloc] initWithObjectsAndKeys:currentNearestEvent, @"event", nil];
NSNotification *note = [NSNotification notificationWithName:@"loadDetailViewForEvent" object:self userInfo:noteInfo];
[[NSNotificationCenter defaultCenter] postNotification:note];
[noteInfo release];
}
}

表格 View Controller :

- (void)viewDidLoad {
[super viewDidLoad];

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];

[nc addObserver:self
selector:@selector(loadDetailViewForEvent:)
name:@"loadDetailViewForEvent"
object:nil];
}

- (void)loadDetailViewForEvent:(NSNotification *)note {
Event *e = [[note userInfo] objectForKey:@"event"];
[self loadEventDetailViewWithEvent:e];
}

所以我对 iOS/Cocoa 编程还很陌生。也许我的做法是错误的选择。所以我希望有人能告诉我如何以正确的方式解决这些问题。

我忘了清楚地声明我的结构:

- UITabBarController
- MapView (1)
- NavigationControllerContainer
- NavigationControllerView (2)
- TableView

我想将一个新 View 从 MapView (1) 推送到 NavigationControllerView (2)。

最佳答案

如果您要使用通知,解决方法是在显示第二个选项卡之前强制“创建”它。

类似于:

UIViewController *otherController = [[[self tabBarController] viewControllers] objectAtIndex:1];
otherController.view; // this is magic;
// it causes Apple to load the view,
// run viewDidLoad etc,
// for the other controller
[[self tabBarController] setSelectedIndex:1];

关于iphone - 如何在包含在 TabBarController 的另一个选项卡中的 NavigationController 中推送 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5345430/

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