2

私は目的の C プログラミングが初めてで、アプリを作成しています。私はosx 10.8.4とxcode 4.6を使用しています。シングルビュー アプリケーションで、あるビュー コントローラーから別のビュー コントローラーに (モーダル) セグエしようとしています。セグエのセグエ識別子を既に与えており、ストーリーボードにセグエを配置しています。ただし、コンソールにセグエしようとすると、次のように表示されます。

 Warning: Attempt to present <UIViewController: 0x74acff0> on <ViewController: 0x82b25a0> whose view is not in the window hierarchy!

これが私の最初のView Controller .mファイルのコードです(segueするコードが含まれています):

 Viewcontroller.m:

 #import "ViewController.h"
 #import "hackScreen.h"
 #import "AppDelegate.h"
 #import <RevMobAds/RevMobAds.h>

 @interface ViewController ()

 @end

 @implementation ViewController

 - (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)hackStarter:(id)sender {

NSString *checker = [_redBoulderRepublic text];
int soLong = [checker length];

UIAlertView *wrongNumber = [[UIAlertView alloc]
                            initWithTitle:@"Invalid number"
                            message:@"Please enter a valid phone number"
                            delegate:nil
                            cancelButtonTitle:@"dismiss"
                            otherButtonTitles:nil];

if (soLong == 10){
    [self performSegueWithIdentifier:@"SegueOne" sender:sender];

}
else{
   [wrongNumber show]; 
}

 }
 - (void)dealloc {
[_redBoulderRepublic release];
[super dealloc];
}
 - (IBAction)keyboardKiller:(id)sender {
[_redBoulderRepublic resignFirstResponder];
 }



@end

そして私の.hファイル:

 Viewcontroller.h:

#import <UIKit/UIKit.h>
#import <RevMobAds/RevMobAds.h>
#import "AppDelegate.h"
#import "hackScreen.h"
@interface ViewController : UIViewController
- (IBAction)hackStarter:(id)sender;
@property (retain, nonatomic) IBOutlet UITextField *redBoulderRepublic;
- (IBAction)keyboardKiller:(id)sender;


@end
4

1 に答える 1

4

このエラーは、ViewController現在表示されていないが、別のコントローラーへのセグエを実行しようとしていることを意味します。あるビュー コントローラーから別のビュー コントローラーへの遷移を実行するには、最初のビュー コントローラーが表示される (または少なくともビュー階層に追加される) 必要があります。

hackStartつまり、のインスタンスが表示される前に呼び出しViewControllerています。

于 2013-08-24T21:31:53.723 に答える