我在storyboad中有三个控制器(FriendVC,ChatVC,PrivateChatVC),导航是顺序的:
用户可以从FriendVC
导航到ChatVC
(TabBarController
),然后导航到PrivateChatVC
。
现在,我需要创建一个从PrivateChatVC
打开FriendVC
的按钮,但也会将ChatVC
放在导航堆栈上,这样当用户从{{1}按回来时他将被送回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
永远不会加载。
答案 0 :(得分:2)
你走在正确的轨道上,你需要像你一样选择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
}
}
答案 1 :(得分:-2)
警告!这是非常糟糕的代码!使用它需要您自担风险:)
CREATE TABLE #ResultSet (Player VARCHAR(100) , ID INT , AGE INT,
[Weight] INT , Size INT)
GO
INSERT INTO #ResultSet
EXEC [dbo].[playerdata_get] @ID = 145
INSERT INTO #ResultSet
EXEC [dbo].[playerdata_get] @ID = 2788
INSERT INTO #ResultSet
EXEC [dbo].[playerdata_get] @ID = 39981
GO
SELECT * FROM #ResultSet
GO