我在故事板中有三个控制器(FriendVC,ChatVC,PrivateChatVC),并且导航是顺序的:
用户可以从导航FriendVC
到ChatVC
(在TabBarController
),然后到PrivateChatVC
。
现在,我需要创建一些按钮,该按钮将从打开PrivateChatVC
,FriendVC
但也会放在ChatVC
导航堆栈上,因此当用户从中按下时,PrivateChatVC
他将返回ChatVC
。
我面临的问题是我ChatVC
是一个TabBarController
。
下面是我正在尝试的代码:
[self.tabBarController setSelectedIndex:1];
PrivateChatController * privateChatController = [self.storyboard instantiateViewControllerWithIdentifier:@"privatechat"];
[self.navigationController pushViewController:privateChatController animated:YES];
我假设这[self.tabBarController setSelectedIndex:1]
将加载选项卡,然后[self.navigationController pushViewController:privateChatController animated:YES];
加载PrivateChatVC
。
但是,它只带我去ChatVC
,PrivateChatVC
从不加载。
方向正确,您需要像完成操作一样选择ChatVC选项卡,但使用单例类并设置参数,以便当ChatVC成为活动VC时,它知道立即推送PrivateChatVC。
在FriendVC中:
_singleton.showPrivateChat = YES;
[self.tabBarController setSelectedIndex:1]; // select ChatVC tab
在ChatVC中:
- (void) viewDidAppear {
if (_singleton.showPrivateChat) {
PrivateChatController * privateChatController = [self.storyboard instantiateViewControllerWithIdentifier:@"privatechat"];
[self.navigationController pushViewController:privateChatController animated:YES];
_singleton.showPrivateChat = NO; // reset boolean
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句