在故事板中推送多个视图控制器

时间:2015-05-22 14:37:12

标签: ios objective-c

我在storyboad中有三个控制器(FriendVC,ChatVC,PrivateChatVC),导航是顺序的:

用户可以从FriendVC导航到ChatVCTabBarController),然后导航到PrivateChatVC

现在,我需要创建一个从PrivateChatVC打开FriendVC的按钮,但也会将ChatVC放在导航堆栈上,这样当用户从{{1}按回来时他将被送回PrivateChatVC

我面临的问题是我的ChatVCChatVC

以下是我尝试的代码:

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];

但是,PrivateChatVCChatVC永远不会加载。

2 个答案:

答案 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