0

我试图让一个按钮根据 textField 的内容将我带到一个新的 UIViewController,但是当我运行它并点击按钮时(在文本字段中使用正确的条件将我带到新的 UIViewController),屏幕黑屏。这是我在 .h 和 .m 文件中写的内容。谁能帮助我(我正在使用故事板)

@interface ViewController : UIViewController

- (IBAction)boton:(id)sender;

@property (strong, nonatomic) IBOutlet UITextField *texto;
@end

#import "ViewController.h"
#import "ViewController2.h"


@interface ViewController ()


@end

@implementation ViewController
@synthesize texto;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)boton:(id)sender {
    if ([texto.text isEqualToString:@"1"]) {
        ViewController2 *vc1=[[ViewController2 alloc]init];
        [self presentViewController:vc1 animated:YES completion:nil];

    }


}
@end
4

1 回答 1

1

正如您所说的屏幕变黑了,我希望您的 viewController 在没有视图的情况下被初始化。

要使用 xib(nib) 文件中的视图层次结构进行初始化:

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle

如果它与视图控制器共享它的名称,它可能在哪里,并且nibName它的笔尖可能在主包中。nilnibBundlenil

IE...

    ViewController2 *vc2;
    vc2 = [[ViewController2 alloc] initWithNibName:nil 
                                            bundle:nil];

xib 文件的名称在哪里ViewController2.xib

从情节提要初始化:

    UIStoryboard *storyboard = self.storyboard;

    vc2 = [storyboard instantiateViewControllerWithIdentifier:@"ViewController2"];

(你需要在 storyboard 中设置一个 viewController 并给它一个匹配的标识符)

要使用故事板或 xib 进行初始化,您应该覆盖视图控制器的- (void)loadView,创建一个视图并将其分配给self.view.

更新

作为对您的评论的回答- UIStoryboard...andViewController2 *vc2= ...代码将进入您的按钮代码(在您的情况下,您将替换/调整包含 . 的行vc1=...。它看起来像这样:

- (IBAction)boton:(id)sender {
    if ([texto.text isEqualToString:@"1"]) {
        ViewController2 *vc2;
        UIStoryboard *storyboard = self.storyboard;
         vc2 = [storyboard instantiateViewControllerWithIdentifier:@"ViewController2"];
        [self presentViewController:vc2 animated:YES completion:nil];

    }

您需要在情节提要中创建一个情节提要场景,其中包含一个自定义类为ViewController2且标识符为 的 viewController "ViewController2"。标识符名称是任意的,但必须与您在代码中使用的标识符字符串匹配。

当您使用情节提要时,另一种方法是创建从“ViewController”场景到“ViewController2”场景的模态转场,给它一个标识符,并performSegueWithIdentifier在您的按钮方法中使用。

于 2013-09-08T15:25:41.880 回答