Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.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
推送视图控制器在ios中工作不正常_Ios_Storyboard - Fatal编程技术网

推送视图控制器在ios中工作不正常

推送视图控制器在ios中工作不正常,ios,storyboard,Ios,Storyboard,我正在两个视图控制器之间传递文本字段数据。我有两个视图控制器Firstviewcontroller和Secondviewcontroller。我已经在导航中嵌入了它们,但当我点击第一视图控制器上的按钮时,第二视图控制器并没有显示,只有黑屏显示。下面是我的代码 第一视图控制器.h #import <UIKit/UIKit.h> #import "secondViewController.h" @interface FirstViewController : UIViewControl

我正在两个视图控制器之间传递文本字段数据。我有两个视图控制器Firstviewcontroller和Secondviewcontroller。我已经在导航中嵌入了它们,但当我点击第一视图控制器上的按钮时,第二视图控制器并没有显示,只有黑屏显示。下面是我的代码

第一视图控制器.h

#import <UIKit/UIKit.h>
#import "secondViewController.h"

@interface FirstViewController : UIViewController<SecondViewControllerDelegate>

@property(nonatomic) secondViewController *secondview;
- (IBAction)btnclick:(id)sender;

@property (strong, nonatomic) IBOutlet UITextField *textfield1;

@end
Seconviewcontroller.h

@protocol SecondViewControllerDelegate <NSObject>

@required
- (void)dataFromController:(NSString *)data;

@end
@interface secondViewController : UIViewController
@property (nonatomic, retain) NSString *data;
@property(nonatomic,weak)id<SecondViewControllerDelegate> _delegate;
@property (strong, nonatomic) IBOutlet UITextField *textfield2;

@end
原因是什么

第二视图控制器未显示,仅显示黑屏

通常,这意味着视图控制器没有视图。您的代码没有解释secondViewController从何处获取视图。是否有第二个ViewController.xib?如果有,是否正确配置了视图插座?如果不是,该视图控制器如何获取其视图


请注意,您在大写方面做了一件非常奇怪的事情:您给了您的类一个小写字母secondViewController,而您的实例有一个大写字母secondViewController。这是一个倒退的错误,你应该立即改正。也许问题只是资本化的问题;如果你调用你的类secondViewController和你的xib文件secondViewController,那是不匹配的,它们找不到对方。

我在你的代码中看到了IBOutlet,这意味着你在故事板上创建了secondViewController的用户界面。我猜[[secondViewController alloc]init]没有从情节提要中获取UI元素,然后显示黑屏。您必须通过从情节提要文件加载来创建secondViewController的实例

基本上:

您可以通过脚本文件名获取脚本

在情节提要上,Secondviewcontroller有一个在Identity Inspector中设置的情节提要id,您可以使用它来获取Secondviewcontroller的实例

您可以参考此链接了解更多详细信息
希望这能有所帮助

您必须使用情节提要并让它为您显示视图控制器:

[self.storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"]
或者,您可以使用xib文件并告诉视图控制器要加载哪个文件:

[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]

如果您不理解视图控制器是如何获取视图的,您可能需要阅读我在这里的解释:请注意您的输入错误。SecondViewController.data应为SecondViewController.data
[self.storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"]
[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]