0

对 obj-c 来说非常新。

我做了一个简单的 MainViewController,从 xib 加载它的视图。(来自标准单视图模板)

主视图上有一个按钮,可将我带到另一个视图。下面是方法:

-(IBAction)forward:(id)sender
{
    tvc = [[TrackViewController alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];
    [self.view addSubview:tvc.view];
}

在另一个视图(也从 xib 加载)我有一个按钮可以带我回到主视图。

这是我返回主视图的 IBAction:

-(IBAction) back:(id)sender {
    [self.navigationController popViewControllerAnimated:YES];
}

但是,它不会返回主视图。不是 popToRootViewControllerAnimated: 要么。

任何回应将不胜感激!

4

3 回答 3

1

当您不使用 UINavigationBar 时,此答案适用

在您的前进按钮中,您需要编写。

TrackViewController *lf = [[TrackViewController alloc]initWithNibName:@"TrackViewController" bundle:nil];
[self presentViewController:TVC animated:YES completion:nil];

在后退屏幕中,您应该正确。

[self dismissViewControllerAnimated:NO completion:nil];
于 2013-07-10T15:57:47.517 回答
0

你应该加载MainViewControllerAppDelegateUINavigationController

MainViewController *mainVC = ...
UINavigationController *naviVC = [[UINavigationController alloc] initWithRootViewController:mainVC];
self.window.rootViewController = naviVC;

然后你可以在你的 MainViewController 中前进:

-(IBAction)forward:(id)sender;
{
    tvc = [[TrackViewController alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:tvc animated:YES];
}

并返回您的其他 ViewController:

-(IBAction) back:(id)sender {
    [self.navigationController popViewControllerAnimated:YES];
}
于 2013-07-10T15:38:36.093 回答
0

如果您的 MainViewController 位于 UINavigationController 中,则该forward方法应如下所示:

-(IBAction)forward:(id)sender
{
    tvc = [[TrackViewController alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:tvc animated:TRUE];
}
于 2013-07-10T15:38:42.117 回答