从一个视图切换到另一个视图

时间:2013-03-05 23:31:21

标签: iphone ios objective-c

首先,我必须声明我是Objective-C和iOS编程的complet newbeginner。

Okey,所以我有一个简单的app运行,但是我在尝试将一个视图切换到另一个视图时遇到了一些问题。计划是在名为RootView的视图中执行“登录逻辑”,然后将用户发送到DataViewController。我试过googeling,但无论我如何尝试实现代码,都会让Xcode哭泣。

我如何实现想要的效果?

以下是以下文件:

RootViewController.h

#import <UIKit/UIKit.h>
@interface RootViewController : UIViewController <UIPageViewControllerDelegate>
@property (strong, nonatomic) UIPageViewController *pageViewController;
@end

RootViewController.m

@interface RootViewController ()

@end

@implementation RootViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
}

@end

DataViewController.h

#import <UIKit/UIKit.h>
@interface DataViewController : UIViewController
@property (strong, nonatomic) IBOutlet UILabel *dataLabel;
@property (strong, nonatomic) id dataObject;
@end

DataViewController.m

#import "DataViewController.h"

@interface DataViewController ()

@end

@implementation DataViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
}

@end

它几乎只是一个空模板,但由于某种原因,它不适用于我尝试过的解决方案。

3 个答案:

答案 0 :(得分:0)

当您准备继续前进时,在您的RootViewController中(可以采用您喜欢的任何方式):

GeoPartyDataViewController *dataController = [[GeoPartyDataViewController alloc] initWithNibName:@"GeoPartyDataViewController.xib" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:dataController animated:TRUE];

不要忘记#import "DataViewController.h"中有RootViewController.m

根据您提供的信息做出的假设,您的DataViewController有一个名为.xib的关联GeoPartyDataViewController.xib文件。这只是一个例子。如果您正在使用故事板或其他机制,请在评论中告诉我。

答案 1 :(得分:0)

首先,您需要将GeoPartyDataViewController.h添加到RootViewController.m,例如

#import "GeoPartyDataViewController.h"

现在转到GeoPartyDataViewController,您需要创建它的实例。

GeoPartyDataViewController *obj =[[GeoPartyDataViewController alloc] initWithNibName:@"GeoPartyDataViewController.xib" bundle:[NSBundle mainBundle]];
[self presentViewController:obj animated:YES completion:nil];

以上代码在相关地点写下您要继续GeoPartyDataViewController

答案 2 :(得分:0)

使用它:

- (void)viewDidAppear:(BOOL)animated
{
    UIStoryboard *storyboard = self.storyboard;
    UIViewController *mtvc = [storyboard instantiateViewControllerWithIdentifier:@"GeoPartyDataViewController"];
    [self presentViewController: mtvc animated:NO completion:nil];
}