繁体   English   中英

将子视图添加到视图层次结构

[英]Adding a subview into view hierarchy

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

主窗口

-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作为层次结构中的顶视图?

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

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

如果您实际上有一个navigationController,这是正确的。 确保您确实在做。 当可可粉中“什么都没有发生”时,通常意味着什么都没有。 您应该在调试器中或使用NSLog()来检查这些值是否为nil。 您的父母有可能(甚至有可能)有一个NavigationController,但您没有。

班级应始终具有领导才能。 不要创建名为“ UIViewController”的变量“ view”。 这是痛苦的必经之路。 Objective-C是一种动态语言,编译器仅对类型进行检查。 正确命名事物对于在ObjC中进行有效编程至关重要。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM