Objective c 使用分段控件推送视图控制器
我目前正在制作一个选项卡栏应用程序,每个选项卡都有一个完全不同的应用程序。我很难想象如何设置一个选项卡 我想做的是有一个分段控件,有两个选项(我称它们为testhouse和Corner)。当分段控件=0时,将显示代表试验室的nib文件(仅为UIViewController),当分段控件=1时,将加载代表拐角的nib文件(也是UIViewController)。我为测试室和角落使用了一个单独的笔尖,因为每个笔尖上都会有很多图像,这使得它过于混乱,无法只在一个视图上编码 目前,我有三个NIB,每个NIB都有自己的控制器——一个用于分段控制视图,另一个用于我想要切换的每个NIB。我的想法是让分段控件视图始终显示,并根据分段控件推送其他两个笔尖。不幸的是,我无法让任何代码正常工作,可能是因为我的设置完全不可靠 使用分段控件的类中的My viewDidLoad方法:Objective c 使用分段控件推送视图控制器,objective-c,xcode,Objective C,Xcode,我目前正在制作一个选项卡栏应用程序,每个选项卡都有一个完全不同的应用程序。我很难想象如何设置一个选项卡 我想做的是有一个分段控件,有两个选项(我称它们为testhouse和Corner)。当分段控件=0时,将显示代表试验室的nib文件(仅为UIViewController),当分段控件=1时,将加载代表拐角的nib文件(也是UIViewController)。我为测试室和角落使用了一个单独的笔尖,因为每个笔尖上都会有很多图像,这使得它过于混乱,无法只在一个视图上编码 目前,我有三个NIB,每个N
- (void)viewDidLoad {
[super viewDidLoad];
QSDTIntegratedAppAppDelegate *delegate = (QSDTIntegratedAppAppDelegate *)[[UIApplication sharedApplication] delegate];
if (segmentedControl == 0) {
[delegate.testHouseViewController pushViewController:interactiveTestHouseViewController animated:YES];
}
else {
[delegate.testHouseViewController pushViewController:interactiveCornerViewController animated:YES];
}
}
分段控件更改时要读取的我的函数:
- (void) segmentAction:(id)sender{
self.segmentedControl = sender;
QSDTIntegratedAppAppDelegate *delegate = (QSDTIntegratedAppAppDelegate *)[[UIApplication sharedApplication] delegate];
if ([segmentedControl selectedSegmentIndex] == 1) {
NSLog(@"TEST HOUSE CHOSEN!");
[delegate.testHouseViewController popViewControllerAnimated:YES];
[delegate.testHouseViewController pushViewController:interactiveTestHouseViewController animated:YES];
}
if ([segmentedControl selectedSegmentIndex] == 1) {
NSLog(@"CORNER CHOSEN!");
[delegate.testHouseViewController popViewControllerAnimated:YES];
[delegate.testHouseViewController pushViewController:interactiveCornerViewController animated:YES];
}
}
TestHouseViewController=分段控制nib的控制器
InteractiveTestHouseViewController=测试房屋nib。分段控制中的选择1
InteractiveCornerHouseViewController=角笔尖。分段控制中的选择2
我也收到了以下6次警告,让我感到困惑:
“TestHouseViewController”可能不响应“-pushViewController:动画:
非常感谢您的帮助。请尝试
委托.testHouseViewController.navigationController
以推送和弹出。另外,第二个代码块中的两个if语句都询问分段控件是否为1。pushViewController
将与UINavigationController
一起使用。如果试图使用UIViewController
显示视图控制器,则需要使用presentModalViewController
。否则,如果testHouseViewController是UINavigationController的根视图控制器,请执行以下操作:
[delegate.testHouseViewController.navigationController popViewControllerAnimated:YES];
[delegate.testHouseViewController.navigationController pushViewController:interactiveCornerViewController animated:YES];
另外,在segmentAction
方法中,您将两个if语句中的段与1
进行比较。这里有一个解决方案:
- (void) segmentAction:(id)sender{
self.segmentedControl = sender;
QSDTIntegratedAppAppDelegate *delegate = (QSDTIntegratedAppAppDelegate *)[[UIApplication sharedApplication] delegate];
if ([segmentedControl selectedSegmentIndex] == 0) {
NSLog(@"TEST HOUSE CHOSEN!");
[delegate.testHouseViewController.navigationController popViewControllerAnimated:YES];
[delegate.testHouseViewController.navigationController pushViewController:interactiveTestHouseViewController animated:YES];
}
if ([segmentedControl selectedSegmentIndex] == 1) {
NSLog(@"CORNER CHOSEN!");
[delegate.testHouseViewController.navigationController popViewControllerAnimated:YES];
[delegate.testHouseViewController.navigationController pushViewController:interactiveCornerViewController animated:YES];
}
@AlexP,你打算如何做到这一点:“我的思维过程是让分段控制视图始终显示出来”