-1

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

谢谢

4

2 回答 2

0

我这样做的方法是拥有一个UINavigationController. 那么RootViewController这是你的第一个视图。

然后从“第一个视图”你可以推TabBarController.

如果您不想要导航栏,您可以隐藏它,但使用 NavigationController 只会让在视图之间移动变得更加容易。

于 2012-12-12T10:49:34.413 回答
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;

@结尾

@interface LoginViewController : UIViewController{ id delegate;

}

@property (retain) id delegate;

- (IBAction)loginButtonPressed:(UIButton *)sender;

@结尾

//LoginViewController.m

- (IBAction)loginButtonPressed:(UIButton *)sender {
            [_delegate loginButtonPressed];

}

于 2012-12-12T11:03:20.037 回答