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