use*_*282 14 xcode objective-c uiscrollview ios swift
我正在尝试设置UIScrollView,以便我可以在我的3个视图控制器之间滑动.这是我在AppDelegate.m中的代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.;
UIScrollView *sv = [[UIScrollView alloc] init];
BarsViewController *bvc = [[BarsViewController alloc] init]; // Create BarsViewController
StopwatchViewController *svc = [[StopwatchViewController alloc] init]; // Create StopwatchViewController
TimerViewController *tvc = [[TimerViewController alloc] init]; // Create TimerViewController
[sv addSubview:bvc.view];
[sv addSubview:svc.view];
[sv addSubview:tvc.view];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade]; // Hide status bar
self.window.rootViewController = sv;
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
它在这一行上出错:
self.window.rootViewController = sv;
Run Code Online (Sandbox Code Playgroud)
说,"不兼容的指针类型从UIScrollView*'分配给'UIViewController*'".
但是,没有UIScrollViewController这样的东西,所以我不知道该怎么做.
基本上,我只想让整个屏幕成为一个滚动视图,它允许我在我的3个视图控制器之间滑动.我该怎么做呢?
Nei*_*rov 39
UPD:2015年6月 Swift
概念保持不变,这将在下面的Objective-C部分中描述.语法有一点变化.要添加childviewcontroller,请使用以下代码段:
let aViewController = storyboard.instantiateViewControllerWithIdentifier("A") as! AViewController;
addChildViewController(aViewController);
scrollView!.addSubview(aViewController.view)
aViewController.didMoveToParentViewController(self)
Run Code Online (Sandbox Code Playgroud)
检查我的Swift Github示例代码
Objective-C的
创建自己的自定义容器视图控制器(我将其称为combinedViewController),它将在滚动视图中保存您的三个控制器.继承像你总是做UIViewController,然后在你的新combineViewController中使用addChildViewController公共API,-viewDidLoad:如下所示:
[self addChildViewController:aViewController];
[self.scrollView addSubview:aViewController.view];
[aViewController didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)
这是代码的作用:
对每个viewControllers执行此操作.然后,将combinedViewController设置为rootViewController.
如果您需要进一步解释,请随时提出.
参考:设计自定义容器视图控制器
在这里,您是我的Objective-C Github示例代码
UPD:感谢@Oliver Atkinson澄清该addChildViewController:方法也会willMoveToParentViewController:自动调用子方法.
结果:
| 归档时间: |
|
| 查看次数: |
21806 次 |
| 最近记录: |