0

我创建了一个应用程序,其中包含 4 个视图控制器及其 .h、.m 文件...在我的第一个视图控制器中按下一个按钮,它转到第二个视图控制器,在第二个视图控制器中有两个按钮,它用于切换回第一个视图控制器和另一个按钮将转到thirdviewcontroller。这是我的firstviewcontroller.m 代码

[[NSBundle mainBundle] loadNibNamed:@"SecondViewController" owner:self options:nil];

在我的第二个视图控制器中为第一个按钮

[[NSBundle mainBundle] loadNibNamed:@"FirstViewController" owner:self options:nil];

和另一个按钮

[[NSBundle mainBundle] loadNibNamed:@"ThirdViewController" owner:self options:nil];

当我在 firstviewcontroller 中选择按钮时,它会加载 secondviewcontroller 但在第二个视图控制器中,如果我选择任何按钮,我会收到 Sigabart 警告...

任何人都可以对此有所了解...我尝试了很多方法..

4

4 回答 4

4

您可以使用以下方法来执行这些任务:

方法一:

在 FirstViewController.m 中,在按钮单击处编写此代码:

SecondViewController *secondVC = [[SecondViewController alloc]initwithNibName:@"SecondViewController" bundle:nil];
[self.view addSubView:secondVC.view];

这会将第二个视图控制器添加到当前视图

在 SecondViewController.m 添加第三个 View 你可以写

ThirdViewController *thirdVC = [[ThirdViewController alloc]initwithNibName:@"ThirdViewController" bundle:nil];
[self.view addSubView:thirdVC.view];

并删除第二个视图,您可以这样写:

[self.view removeFromSuperview];

方法二:

使用导航控制器。

于 2012-06-15T05:30:28.907 回答
2

使用这样的代码

FirstViewController *FVC = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];

//For Push    
[self.navigationController pushViewController:FVC animated:YES];

//For Pop
[self.navigationController popViewControllerAnimated:YES];

:)

于 2012-06-15T05:33:41.807 回答
1
//For going in forword direction you can use this block
{
FirstViewController *firstVC = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
[self.navigationController pushViewController:firstVC animated:YES];
[firstVC relese];
}

//For returning back you can use this block
{ 
   [self.navigationController popViewControllerAnimated:YES];
}


//But before using this line of code you have to alloc and make the property of    navigationController in your appDelegate

希望对你有帮助

于 2012-06-15T06:48:43.400 回答
1

在 iPhone 应用程序编程中,当我们将视图控制器推送到新的另一个视图控制器时,视图控制器通常一个一个地存储在堆栈中。并查看以相同的反向格式删除这些控制器。所以如果你想推一个新的视图控制器使用这个:

SecondViewController *second = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];

[self.navigationController pushViewController:second animated:YES];

如果您想删除当前的视图控制器,请使用:

`[self.navigationController popViewControllerAnimated:YES];

如果你想从任何视图控制器跳转到你的第一个视图控制器

[self.navigationController popToRootViewControllerAnimated:YES];

您可以通过这行代码获取此堆栈中显示的视图控制器

NSArray *viewArr = [self.navigationController viewControllers];

NSLog(@"%@",viewArr);

[self.navigationController popToViewController:[viewArr objectAtIndex:1] 动画:YES];

`

于 2012-06-15T05:34:29.167 回答