首先,我必须声明我是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
它几乎只是一个空模板,但由于某种原因,它不适用于我尝试过的解决方案。
答案 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];
}