标签: uistoryboard

如何在iOS 5中向UIPageViewController添加页面数组?

有谁知道我为了将我自己的视图控制器手动添加到UIPageViewController方法而缺少什么?

我目前有这个,我不知道如何继续:

NSDictionary *pageViewOptions = [NSDictionary dictionaryWithObjectsAndKeys:UIPageViewControllerOptionSpineLocationKey, [NSNumber numberWithInteger:UIPageViewControllerSpineLocationMin], nil];

self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:pageViewOptions];


BookViewController *pageOne = [self.storyboard instantiateViewControllerWithIdentifier:@"BookViewController"];

AnotherPage *pageTwo = [self.storyboard instantiateViewControllerWithIdentifier:@"AnotherPage"];

PageThree *pageThree = [self.storyboard instantiateViewControllerWithIdentifier:@"PageThree"];


self.pageViewController.delegate = self;
self.pageViewController.dataSource = self;

[self.pageViewController setViewControllers:[NSArray arrayWithObjects:pageOne, pageTwo, pageThree, nil] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

[self addChildViewController:self.pageViewController];

[self.view addSubview:self.pageViewController.view];

self.view.gestureRecognizers = self.pageViewController.gestureRecognizers;

[self.pageViewController didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.我只看到RootViewController.

感谢所有喜欢提前帮助像我这样渴望新手的人.... :)

nsarray ios5 uistoryboard uipageviewcontroller

3
推荐指数
1
解决办法
9323
查看次数

iOS 6 - 以编程方式触发Unwind Segue什么都不做

在我的应用程序启动时,它以编程方式显示使用segue的LoginViewController.视图控制器以模态方式呈现,过渡设置为交叉溶解.验证成功后,我想通过以编程方式触发展开segue来关闭登录视图.所以我把它添加到我的头文件中:

- (IBAction)unwindSegue:(UIStoryboardSegue *)segue;
Run Code Online (Sandbox Code Playgroud)

现在在IB中,我可以控制 - 从"文件所有者"LoginViewController拖动到"退出"按钮并选择unwindSegue:.这将创建一个手动segue,它会在Connections检查器中显示File文件所有者和Exit按钮.然后我点击IB中场景中新创建的Unwind segue,然后给它起一个名字.如果我单击"转到"按钮进行展开segue操作,它会转到上面提到的声明.

到目前为止一切顺利,我在GCD块中成功验证后触发了这个解开segue:

....
dispatch_async(dispatch_get_main_queue(), ^
{
    [self performSegueWithIdentifier:@"UnwindSegueIdentifier" sender:self];

    [self.spinner removeFromSuperview];
    self.spinner = nil;
});
Run Code Online (Sandbox Code Playgroud)

.....并且当它运行时没有任何反应.微调器确实被正确删除,但没有迹象表明unwind segue正在执行.

执行中的断点unwindSegue:永远不会被击中.没有抛出任何错误.什么都没有写入控制台.标识符是正确的,我三重检查(否则它将失败).

我在这里,这里这里看了答案,但我似乎没有错过任何东西.

我做了什么,虽然注意到,是Xcode认为unwindSegue:挂钩: 联系? 没联系?

我无法从前面的小空圈拖动并将其unwindSegue:链接到"退出"按钮.

任何帮助将不胜感激.

objective-c ios uistoryboard segue uistoryboardsegue

3
推荐指数
1
解决办法
7778
查看次数

IOS:检测UIView上特定位置的滑动手势

我正在创建一个故事板应用程序,当用户执行滑动手势时,视图会发生变化.我遇到的问题是,当您将手势识别器拖放到main.storyboard文件的视图上时,可以从UIView内的任何位置识别手势.基本上,我需要识别在屏幕上的特定区域中执行的手势,类似于在IOS 6中向下拖动通知中心的方式.如果这不清楚或者您需要更多详细信息,请随时询问.

在此先感谢您的帮助!

uiview uigesturerecognizer ios uistoryboard

3
推荐指数
1
解决办法
7826
查看次数

从parentViewController隐藏或临时删除子ViewController?

(询问并自我回答,因为我在Google上没有发现任何点击,但最终通过反复试验找到了解决方案)

在iOS 5和6中,Apple添加了一些丑陋的黑客,使InterfaceBuilder支持"嵌入式"视图控制器.他们没有记录这些是如何工作的,他们只提供代码级示例,而且它们只涵盖了有限的一部分案例.

特别是,我希望有一个有时隐藏的嵌入式视图控制器 - 但如果你尝试使用明显的方法它不起作用(你会得到一个白色矩形):

childViewController.view.hidden = TRUE;
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller ios uistoryboard container-view

3
推荐指数
1
解决办法
6611
查看次数

"图像视图"的位置和大小不明确

我试图设置一个UIImageView在故事板中没有固定的大小和宽度.我将前导空间设置为大于或等于20,容器的顶部空间大于或等于20,容器的尾随空间大于或等于20,垂直间距为UICollectionView,UICollectionView满足限制.但UIImageView不起作用,它告诉我它的位置和大小都不明确.我怎样才能使它工作?我的想法是,无论图像视图有多大,它都会始终保持前后,顶部,尾部和底部的20个空间.

我将高度和宽度设置为大于或等于某个值,并将其优先级设置为999,它低于前导,上限和尾随优先级.我已将imageview设置为水平居中.但我得到的高度和垂直位置对于"图像视图"来说是模棱两可的.

http://i39.tinypic.com/24wxbh4.png

iphone objective-c uistoryboard autolayout

3
推荐指数
1
解决办法
3万
查看次数

导航控制器始终为零

我呈现的UIViewController是:

UIStoryboard *storyboard  = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

PhotoViewController *resultVC = [storyboard instantiateViewControllerWithIdentifier:NSStringFromClass([PhotoViewController class])];
[self.navigationController presentViewController:resultVC animated:YES completion:^{}];
Run Code Online (Sandbox Code Playgroud)

我已登录控制台,结果是:

po self.navigationController
<UINavigationController: 0x9c3e920>
Run Code Online (Sandbox Code Playgroud)

但是当我在PhotoViewController课堂上时,我已经记录了控制台,结果是:

po self.navigationController
nil
Run Code Online (Sandbox Code Playgroud)

它在这里没有.我不知道为什么会这样.我也有这个,但它总是:

[self presentViewController:resultVC animated:YES completion:^{}];
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller uinavigationcontroller ios uistoryboard

3
推荐指数
1
解决办法
5245
查看次数

在iOS应用程序中演示演练

我正在推出我的应用程序的第2版,需要对新功能进行简短的演练.我经历了一个教程并在另一个应用程序中创建了我的演练,其中一个UIViewController是根视图,一个UIPageViewController包含一个UIView,我在其中显示我的屏幕.它按我想要的方式工作.

现在我想在我的应用程序中集成它.我可以轻松地从示例应用程序导入我的编码.

我相信应用程序委托我将看到用户是否曾经历过演练,如果没有,请切换到启动演练的UIViewController,并写入用户已经看过演练的默认值(因此他们不会需要再次看到它.我在演练中有一个按钮进入主屏幕.

我对"applicationdidFinishLaunchingWithOptions"方法的部分代码如下:

                - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        UIPageControl *pageControl = [UIPageControl appearance];
        pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
        pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
        pageControl.backgroundColor = [UIColor whiteColor];

        UIStoryboard *storyBoard;
        storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard.storyboard" bundle:nil];
        UIViewController *walkthrough = [storyBoard instantiateViewControllerWithIdentifier:@"NextViewController"];
        //[self presentViewController:walkthrough animated:YES completion:nil];
        [self.window setRootViewController:walkthrough];

        return YES;
    }
Run Code Online (Sandbox Code Playgroud)

这是完成的代码.非常感谢您的帮助:

      // User Defaults
      UserDefaults *thisUserDefaults = [[UserDefaults alloc] init];
      [thisUserDefaults registerDefaults];

      if (![[[NSUserDefaults standardUserDefaults]
              valueForKey:kAppHasRunBeforeKey] boolValue]) {

        UIPageControl *pageControl = [UIPageControl appearance];
        pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
        pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
        pageControl.backgroundColor …
Run Code Online (Sandbox Code Playgroud)

ios uistoryboard uipageviewcontroller

3
推荐指数
1
解决办法
2520
查看次数

故事板和子类

我正在尝试使用故事板和子类创建视图层次结构.我们的想法是UIViewController在故事板中有一个链接到基类的屏幕(当然,这是一个子类),并根据需要实例化子类.子类总是具有相同的布局,主要区别在于viewDidLoad函数.如果我打电话self.storyboard?.instantiateViewControllerWithIdentifier("menu"),我总是得到一个基类的实例,即使我添加as SubClass.

有没有办法以我想要的方式实例化子类?

subclass uiviewcontroller ios uistoryboard swift

3
推荐指数
1
解决办法
413
查看次数

ios:带有Aspect的UIImageView填充不符合约束

我有以下设计.使用Storyboard我尝试了多种方法,但所有的努力都是徒劳的.

在此输入图像描述

1 - View Controller 2的主要默认视图 - 包含图像视图和2个相等宽度按钮的视图3 - 使用Aspect Fill的图像视图(需要根据iPhone大小占用尽可能多的空间)

我得到的一切除了1个约束.包含2个按钮的ImageView和View之间的约束.(使用按钮的堆栈视图)

在某些屏幕尺寸中,带有Aspect填充的图像视图与堆栈视图重叠.Aspect Fit留下了大量的空白空间.

Image View需要根据尺寸扩展所有iPhone!(这似乎是通过Aspect Fill解决的,而不是方面适合)如何解决ImageView缩放时保持Image + 2按钮垂直居中(矩形2垂直和水平居中)的问题?

编辑:我也尝试过"Clip to Bound",但它会剪切两侧的图像.我想知道完整的设置,每个视图应该做什么或者如何组织每个视图以获得效果?

iphone interface-builder ios uistoryboard swift

3
推荐指数
1
解决办法
3186
查看次数

不适用于Storyboard中特定UIView角的角半径不适用于所有角

我为此做了一个自定义类。但这仅适用于左上角,不适用于其他:

@IBDesignable
public class RoundedView: UIView {

    @IBInspectable public var topLeft: Bool = false
    @IBInspectable public var topRight: Bool = false
    @IBInspectable public var bottomLeft: Bool = false
    @IBInspectable public var bottomRight: Bool = false
    @IBInspectable public var cornerRadius: Int = 0

    public override func awakeFromNib() {
        var options = UIRectCorner()

        if topLeft { options =  options.union(.topLeft) }
        if topRight { options =  options.union(.topRight) }
        if bottomLeft { options =  options.union(.bottomLeft) }
        if bottomRight { options =  options.union(.bottomRight) }

        let …
Run Code Online (Sandbox Code Playgroud)

ios uistoryboard swift

3
推荐指数
1
解决办法
92
查看次数