2013-07-17 8 views
6

मैं स्टोरीबोर्ड है कि मैं त्रुटि का सामना करना पड़ रहा के रूप में में दिखाया नीचे मेरी कोड सफलतापूर्वक क्रियान्वित किया जाता है लेकिन उनके कोई पेज शो या सिम्युलेटर में कार्रवाई का उपयोग कर रहा है केवल छवि को शुरू करने के बाद काली स्क्रीन दिखाई देते हैं।प्रोग्राम स्टोरीबोर्ड दृश्य प्रदर्शित

ClsMainPageAppDelegate.h

#import <UIKit/UIKit.h> 

@interface ClsMainPageAppDelegate : UIResponder <UIApplicationDelegate> 
@property (strong, nonatomic) UIWindow *window; 
@end 

ClsMainPageAppDelegate.m

#import "ClsMainPageAppDelegate.h" 
#import "ClsMainPageViewController.h" 
#import "ClsTermsandConditionViewController.h" 

@implementation ClsMainPageAppDelegate 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
// Override point for customization after application launch. 


NSUserDefaults *fetchDefaults = [NSUserDefaults standardUserDefaults]; 
int message = [fetchDefaults integerForKey:@"checkvalue"]; 
NSLog(@"Message Hello : %i",message); 

if(message == 1) 
{ 

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    ClsMainPageViewController *mvc = [storyboard instantiateViewControllerWithIdentifier:@"BeIinformedPage"]; 
    [(UINavigationController*)self.window.rootViewController pushViewController:mvc animated:NO]; 
    NSLog(@"Launched Home Page"); 


} 
else 
{ 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    ClsTermsandConditionViewController *mvc = [storyboard instantiateViewControllerWithIdentifier:@"termsandConditionControl"]; 
    [(UINavigationController*)self.window.rootViewController pushViewController:mvc animated:NO]; 
    NSLog(@"Launched Terms and Conditions Page"); 
} 
return YES; 
} 

त्रुटि

यह त्रुटि मैं का सामना जब मैं प्रवेश बिंदु का चयन नहीं कर रहा हूँ में storybroad प्रारंभिक है नियंत्रण देखें एर।

2013-07-17 19:38:12.749 BeInformed[1011:c07] Failed to instantiate the default view 
controller for UIMainStoryboardFile 'MainStoryboard' - perhaps the designated entry 
point is not set? 
2013-07-17 19:38:16.127 BeInformed[1011:c07] Message Hello : 0 
2013-07-17 19:38:18.333 BeInformed[1011:c07] Launched Terms and Conditions Page 

त्रुटि

यह त्रुटि मैं का सामना जब मैं कर रहा हूँ storybroad में प्रवेश बिंदु का चयन प्रारंभिक दृश्य नियंत्रक (termsandConditionControl)

2013-07-17 19:53:19.839 BeInformed[1057:c07] Message Hello : 0 
2013-07-17 19:53:26.175 BeInformed[1057:c07] - [ClsTermsandConditionViewController 
pushViewController:animated:]: unrecognized selector sent to instance 0x71b2f50 
2013-07-17 19:53:26.176 BeInformed[1057:c07] *** Terminating app due to uncaught 
exception 'NSInvalidArgumentException', reason: '-[ClsTermsandConditionViewController 
pushViewController:animated:]: unrecognized selector sent to instance 0x71b2f50' 
+0

कैसे अपने स्टोरीबोर्ड की स्थापना की है इस्तेमाल किया? एक नेविगेशन नियंत्रक प्रारंभिक नियंत्रक है? इसका रूट व्यू कंट्रोलर क्या है? – rdelmar

+0

आप कुछ त्रुटि जांच कर सकते हैं यह देखने के लिए कि स्टोरीबोर्ड और विचार सफलतापूर्वक लौटाए गए हैं या नहीं। इसके अलावा, '(UINavigationController *) self.window.rootViewController' संदिग्ध लग रहा है और परीक्षण किया जाना चाहिए। – Jenn

+0

मुझे समझ में नहीं आता कि मैंने स्टोरीबोर्ड कैसे स्थापित किया है और प्रारंभिक नियंत्रक नेविगेशन नियंत्रक क्या है? कृपया मुझे बताएं कि मैं रूट व्यू कंट्रोलर कैसे जान सकता हूं? इसे समझाओ और कृपया मेरी समस्या को हल करें। –

उत्तर

5

वैसे, मुझे पता है तुम हल किया है आपकी समस्या, लेकिन मैं सिर्फ एक और प्रवाह का सुझाव देना चाहता था। तुम्हें पता है, वैकल्पिक रूप से, हमेशा अपने मानक प्रारंभिक दृश्य के साथ शुरू कर सकता है (जो आप अनुप्रयोग प्रतिनिधि में किसी भी कोड के बिना कर सकते हैं), लेकिन है इसकी viewWillAppear निर्धारित करता है, तो आप नियम और शर्तें (टी & सी) की जरूरत है, और यदि हां, वर्तमान कि अलग दृश्य सामान्य रूप से (या तो एनिमेटेड या एनिमेटेड नहीं, जैसा कि आप फिट देखते हैं)। आप टी & सी की उपयोगकर्ता की पुष्टि कर सकते हैं और फिर नियम और शर्तों के दृश्य को खारिज कर सकते हैं और आप मानक "प्रारंभिक" दृश्य पर वापस आ जाएंगे।

आप इसे उस तरह से करते हैं, आपका टी & सी खारिज कर दिया जाएगा, तो आप rootViewController प्रोग्राम के रूप में बदलने के साथ चारों ओर खेलने के लिए नहीं है, नेविगेशन नियंत्रक के शीर्ष स्तर दृश्य हमेशा मानक "प्रारंभिक" दृश्य के रूप में रहता है इसलिए हाथ से किसी मामूली बिना popToRootViewController काम तरह बातें, आप जहाँ आप उपयोगकर्ता टी & को देखने का एक विकल्प पेश हो सकता है आदि टी & सी पृष्ठ पर नेविगेशन पट्टी, यह भी एक प्रवाह के लिए खुद को उधार देता है छिपाने के लिए की जरूरत नहीं है सी फिर से (उदाहरण के लिए "सेटिंग्स" या "के बारे में" दृश्यों पर दफन किया गया है, यदि आपके पास इसे दिखाने के लिए उपयुक्त स्थान है)।

और आप सोच रहे हैं कि कैसे प्रोग्राम के रूप में टी & सी पर जाने के लिए, आप टी & सी दृश्य करने के लिए अपने प्रारंभिक दृश्य से एक segue निर्धारित कर सकते हैं:

create segue

फिर उस segue का चयन करें और दे यह एक पहचानकर्ता:

segue identifier

और अब अपने प्रारंभिक दृश्य की viewWillAppearperformSegueWithIdentifier कर सकते थे, जैसे:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    BOOL hasAcceptedTermsAndConditions = ...; 

    if (!hasAcceptedTermsAndConditions) 
    { 
     [self performSegueWithIdentifier:@"TermsAndConditions" sender:self]; 
    } 
} 

मुझे खुशी है कि आपने अपनी समस्या हल की है, लेकिन मैं बस एक वैकल्पिक प्रवाह का सुझाव देना चाहता था।

0

ठीक है संभावित कारण यह है कि, आपने स्टोरीबोर्ड में अपने नियंत्रक को पहचान निरीक्षक में क्लास/नियंत्रक नाम असाइन करना छोड़ दिया होगा। इसके बाद आपकी प्लिस्ट फ़ाइल में एक चेक भी है कि आपके स्टोरीबोर्ड के उचित नाम के साथ स्टोरीबोर्ड एंट्री है।

आशा है कि यह काम करता है। :)

4

अंत में मेरी समस्या हल, मैं इस संहिता

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    ClsTermsandConditionViewController *ivc = [storyboard instantiateViewControllerWithIdentifier:@"termsandConditionControl"]; 
    UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:ivc]; 
    self.window.rootViewController=nil; 
    self.window.rootViewController = navigationController; 
    [navigationController setNavigationBarHidden:YES]; 
    [self.window makeKeyAndVisible]; 
संबंधित मुद्दे