tabbarcontroller之前的第一个屏幕

时间:2012-12-12 10:42:46

标签: ios xcode uitabbarcontroller

我是obj-C编程的新手。我感兴趣的是如何制作这样的应用程序:我运行它然后它显示带有按钮的视图控制器。我单击此按钮,它显示标签栏控制器。我应该将第一个屏幕显示为模态视图还是其他变体?你能逐步解释这个过程吗?

由于

2 个答案:

答案 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];

}