Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone insertSubview:AtIndex:不起作用_Iphone_Objective C_Subview - Fatal编程技术网

Iphone insertSubview:AtIndex:不起作用

Iphone insertSubview:AtIndex:不起作用,iphone,objective-c,subview,Iphone,Objective C,Subview,我查阅了有关这个问题的资料,但仍然不能完全弄清楚。 主要问题是,我正在使用此方法,但视图没有显示。。。 该应用程序由两个视图组成-主视图我将其作为子视图添加到主nib中- 有一个文本字段,我在其中写入一些文本。 有一个按钮,按下该按钮时,action方法将加载第二个视图,该视图中有一个标签,其中包含一些文本。 第一个viewController的源代码: #import <UIKit/UIKit.h> @class TxtRunnerViewController; @interf

我查阅了有关这个问题的资料,但仍然不能完全弄清楚。 主要问题是,我正在使用此方法,但视图没有显示。。。 该应用程序由两个视图组成-主视图我将其作为子视图添加到主nib中- 有一个文本字段,我在其中写入一些文本。 有一个按钮,按下该按钮时,action方法将加载第二个视图,该视图中有一个标签,其中包含一些文本。 第一个viewController的源代码:

#import <UIKit/UIKit.h>

@class TxtRunnerViewController;

@interface Itai_s_text_app_take_2ViewController : UIViewController {
 int sliderSpeed;
 IBOutlet UITextField  *textInput;
 TxtRunnerViewController *trvc;
}

@property (nonatomic, retain) IBOutlet UITextField *textInput;
@property (retain, nonatomic) TxtRunnerViewController *trvc;

- (IBAction)sliderChanged:(id)sender;//speed of text show changed

- (IBAction)textFieldDoneEditing:(id)sender;//dor 'DONE' on keyboard
- (IBAction)backgroundTap:(id)sender;//for handling tapping on background

- (IBAction)textEmButtonPressed:(id)sender;

@end
第二个视图为空,并在其nib文件中添加了一个标签: 进口

@interface TxtRunnerViewController : UIViewController {

}

@end
它的.m文件是默认文件,没有添加任何代码。 当我在第一个视图中按下按钮时,它的视图消失了,但第二个视图没有出现,只有一个空白的白色视图出现,上面没有任何内容

能源部

该行: [self.view removeFromSuperview]

从其超级视图中删除视图

然后电话

[self.view insertSubview:trvc.view atIndex:0];
将trvc添加到其中-但该视图已被删除,不再可见


您需要将trvc添加到superview。

如果您按下TxtRunnerViewController,它将完全隐藏第一个,但它仍存在于后台。不从SuperView移除

TxtRunnerViewController *vw = [[TxtRunnerViewController alloc]initWithNibName:@"TxtRunner" bundle:nil];
[self.view pushViewController:vw.view animated:NO];
[vw release];
要删除第一个视图,有点困难。您需要在RootViewController中实现一个委托,该委托将在单击第一个视图的“完成”按钮后被激发。然后在RootViewController中执行一些代码,显示第二个视图并删除第一个视图


对于代理示例,请在创建新项目时打开实用程序应用程序示例,了解其工作原理或在线搜索一些示例。

请将您的代码格式化为输入上方的代码示例{}或Ctrl+K。对于不便之处,代码:如何编写代码,以便显示导入并缩进代码,行结束了,新的行被识别了吗?正如我在上面写的,使用{}按钮或者选择文本,然后在Mac cmd+KI上按Ctrl+K,我有点困惑,jamihash-我该怎么做呢?我认为使用InsertIndex就可以做到这一点。尝试了[super.view insertSubview…]-也得到了一个空白的iphone屏幕;它应该会起作用。如果需要删除self视图,则必须将trvc视图插入到其他视图中,而不是self,但现在请删除[self.view removeFromSuperview];是的,我做到了,而且成功了,现在我从自己身上看到了这两个元素。视图和来自trvc视图nib的视图。。。我真的错过了一些东西…非常抱歉进一步询问,但我相信我的问题也涉及到设计问题:
TxtRunnerViewController *vw = [[TxtRunnerViewController alloc]initWithNibName:@"TxtRunner" bundle:nil];
[self.view pushViewController:vw.view animated:NO];
[vw release];