0

我希望在用户单击按钮时出现一个视图。我的层次结构如下所示:

主窗口

-UIView
--ScrollView
---ScrollView.pages = UIViews
----UIView (from above assignment)
----TextView
----InfoButton

pages 是 pageController 对象的 NSMutableArry。这些钩在笔尖上。这些笔尖是用户在滚动视图中浏览的页面。

InfoButton 点击​​的连接方式如下:

- (IBAction) infoButton_click:(id)sender{
topView topViewViewController *topView = [[topViewViewController alloc] initWithNibName:@"TopView" bundle:[NSBundle mainBundle]];
//[self.navigationController pushViewController: topViewView animated:YES]; 
//[self.view addSubview: topViewView.view];
[super.view addSubview: topViewView.view];
[topViewView release];
}

InfoButton 位于 ScrollView 中的页面之一上。我已经注释掉了已经尝试过的不同代码。它都没有添加视图。没发生什么事。有没有办法让 TopView 作为层次结构中的顶视图?

4

2 回答 2

2

您的目标是将视图添加为子视图,还是使用导航控制器在新视图上滑动?我暂时假设后者。

- (IBAction)infoButton_click:(id)sender
{
    TopViewController *topViewController = [[TopViewController alloc] initWithNibName:@"TopView" bundle:nil];
    [self.navigationController pushViewController:topViewController animated:YES]; 
    [topViewController release];
 }

如果您实际上有一个导航控制器,这是正确的。确保你确实做到了。当 Cocoa 中的“什么都没有发生”时,通常意味着某事是零。您应该检查调试器或NSLog()查看这些值是否为 nil。您的父母有可能(甚至很可能)有一个导航控制器,但您没有。

类应该总是有一个领先的资本。不要创建一个名为“view”的变量,它属于“UIViewController”类。这是通往苦难的必经之路。Objective-C 是一种动态语言,编译器对类型的检查有限。正确命名事物对于在 ObjC 中进行有效编程至关重要。

于 2009-05-25T15:42:45.700 回答
1

根据您对先前答案的评论,您希望呈现模态视图。您可以通过创建一个新视图“ modalView”并调用[topView presentModalViewController:modalView animated:YES].

在 iPhone OS 的未来版本中,如果它在 NDA 下,我当然无法评论,您可以通过在要呈现的视图控制器上设置属性来呈现具有翻转过渡的模态视图控制器,这可能会被称为modalTransitionStyle或类似的。

于 2009-05-25T20:48:17.350 回答