我是obj-C编程的新手。我感兴趣的是如何制作这样的应用程序:我运行它然后它显示带有按钮的视图控制器。我单击此按钮,它显示标签栏控制器。我应该将第一个屏幕显示为模态视图还是其他变体?你能逐步解释这个过程吗?
由于
答案 0 :(得分:0)
我这样做的方法是拥有UINavigationController
。然后RootViewController
这是你的第一个观点。
然后,从“第一个视图”,您可以推送TabBarController
。
如果您不想要它,可以隐藏导航栏,但使用NavigationController只是让它更容易在视图之间移动。
答案 1 :(得分:0)
您可以使用委托来实现该功能。创建LoginViewControler并在其中定义协议。在AppDelegate.m文件中实现该委托方法。以下是sude代码,以实现您的愿望功能。
// AppDelegate.h
@interface AppDelegate : UIResponder <UIApplicationDelegate,LoginViewControllerDelegate>{
LoginViewController *loginViewController;
}
// AppDelgate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
loginViewController = [[LoginViewController alloc]initWithNibName:@"LoginViewController" bundle:nil];
loginViewController.delegate = self;
self.window.rootViewController = loginViewController;
[self.window makeKeyAndVisible];
return YES;
}
-(void)loginButtonPressed {
[self.window setRootViewController:nil];
self.window.rootViewController = self.viewController;
}
<强> // LoginViewController.h 强>
@protocol LoginViewControllerDelegate <NSObject>
@Required - (void)loginButtonPressed;
@end
@interface LoginViewController:UIViewController { id delegate;
}
@property (retain) id delegate;
- (IBAction)loginButtonPressed:(UIButton *)sender;
@end
<强> // LoginViewController.m 强>
- (IBAction)loginButtonPressed:(UIButton *)sender {
[_delegate loginButtonPressed];
}