来自uiscrollview页面的segue模式

时间:2012-08-31 11:32:59

标签: objective-c interface-builder uistoryboardsegue

我拥有的是通过IB Storyboard创建的UIViewController。该视图控制器内部有一个UIScrollView。我已经为滚动视图启用了分页,并使用其他三个视图动态填充该滚动视图。所有VC都有对应的故事板。其中一个VC(三个用于scrollview)有一个带3个按钮的视图。单击每个按钮我想要转到其他VC的视图。所以我的故事板有一个带有scrollview的主VC。 scrollview中的页面有三个VC,每个按钮上有三个VC可用于上传。

或多或少这有效。我可以滚动浏览页面(三个视图),在最后一个视图中我可以单击按钮,我在屏幕上看到VC的视图,但问题是这个视图似乎是UIScrollView的一部分。因此,我可以在屏幕上滚动该新视图并获取VC的初始列表(初始和两个而不是具有按钮的那个)。这是我不想要的。 我想在新视图上进行模拟,这是一个模态视图,并且“覆盖”父VC。所以不再滚动是可能的。

我如何实现这一目标?另外,我如何在scrollview之后回到初始VC?

1 个答案:

答案 0 :(得分:2)

不幸的是,没有。我正在努力解决同样的问题。我有一个滚动视图,我允许用户滚动三次,然后我提供一个按钮导航到另一个视图控制器(购买应用内购买)。我已经尝试了一切使segue工作,但似乎没有任何工作。 [self parentViewController] =在我的情况下为nil,我认为这是我的问题。

    // Here is the code from the scrollview controller:

- (IBAction)buyNowButtonClicked:(id)sender {
    NSLog(@"The purchases/buy now button was pressed....");

    if ([self navigationController] ==nil)
        NSLog(@"self.navigationcontroller = nil"); // always nil

    MoonPhasePageViewController *parentViewController = (MoonPhasePageViewController *)[self parentViewController];
    if (parentViewController == nil)
        NSLog(@"parentViewController = nil");
    else
        [parentViewController launchPurchasesViewController];
};

    // Here is the method from the parentViewController:

    -(void) launchPurchasesViewController{  // never invoked
        NSLog(@"Entered parent view, trying to launchPurchases");
        [self performSegueWithIdentifier:@"launchPurchases" sender:self];
    }

我也试过[self performSegueWithIdentifier:@“launchPurchases”sender:self];和[[self parentViewController] performSegueWithIdentifier:@“launchPurchases”sender:self]];。两者都失败了,所以我试着在parentViewController中调用一个方法并在那里执行segue ...没有骰子,因为parentViewController是nil。仅供参考,我在IB中为parentPageViewController和scrollViewController创建了push segues。