在视图中来回切换

时间:2013-07-10 15:29:22

标签: ios objective-c cocoa-touch

对象很新。

我做了一个简单的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:要么。

任何回复都将不胜感激!

3 个答案:

答案 0 :(得分:1)

当您不使用UINavigationBar

时,此答案适用

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

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

并且在Backward屏幕中你应该是对的。

[self dismissViewControllerAnimated:NO completion:nil];

答案 1 :(得分:0)

您应该在MainViewController中加载AppDelegate UINavigationController

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

答案 2 :(得分:0)

如果您的MainViewController在UINavigationController中,那么forward方法应如下所示:

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