XIB中的导航栏项目,其中显示了StoryBoard选项卡栏根视图控制器Segue

时间:2015-01-25 18:15:44

标签: ios objective-c xcode uitabbarcontroller uinavigationbar

我的应用程序有很多用它,哈哈。在我的主菜单上,如果您点击"聊天",它将带您进入聊天XIB。

如果您查看导航栏中的左上角,我会看到一些名为" Main Menu"。我想让它带我回到主菜单。我的主菜单位于main.Storyboard上。聊天是一个XIB。两个视图都有标签栏。我整天都在试图解决这个问题。这是我尝试崩溃的最后一件事:

-(void)MainMenu
{
    MainMenuTabBarControllerViewController *MMTBC = [[MainMenuTabBarControllerViewController alloc]init];
    [self.navigationController popToViewController:MMTBC animated:YES];
}
- (void)viewDidLoad
//-------------------------------------------------------------------------------------------------------------------------------------------------
{
    [super viewDidLoad];

    self.title = @"Group";
    //---------------------------------------------------------------------------------------------------------------------------------------------
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"New" style:UIBarButtonItemStylePlain target:self
                                                                             action:@selector(actionNew)];
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Main Menu" style:UIBarButtonItemStyleBordered target:self action:@selector(MainMenu)];

    //---------------------------------------------------------------------------------------------------------------------------------------------
    self.tableView.tableFooterView = [[UIView alloc] init];
    //---------------------------------------------------------------------------------------------------------------------------------------------
    chatrooms = [[NSMutableArray alloc] init];
}

2 个答案:

答案 0 :(得分:1)

由于您的应用程序中有两个标签栏控制器。我不认为使用导航控制器(推/弹)来管理它们之间的过渡是个好主意。试试presentViewController

按下聊天按钮时,显示第二个标签视图控制器。

- (IBAction)chatButtonPressed:(id)sender {
    ChatTabBarController *chatTabView = ... // allocate memory and initialize
    [self presentViewController:chatTabView animated:YES completion:nil];
}

按下主菜单按钮时,将其关闭。

- (IBAction)mainMenuButtonPressed:(id)sender {
    [self dismissViewControllerAnimated:YES completion:nil];
}

编辑:

注意几年前提出的一个非常相似的问题。看看这个:

How can I push tab bar controller after click a button from a view in objective c?

答案 1 :(得分:0)

你应该使用故事板。尝试删除您的XIB并开始在故事板上使用Unwind segue。你在使用push还是modal?它改变了一切。迁移到故事板后,请阅读关于Unwind segues的Apple文档。

致以最诚挚的问候,