Hallo
Könnte mir jemand sagen, wie ich über bestimmten Objektive-C Code einen View öffne. Durch einen Button mit Segues weiß ich bereits, doch über normalen Code weiß ich nicht Bescheid.
LG
electrofreak
Wenn du das ganze mit einem UINavigationcontroller machst, sollte es so aussehen:
Dem viewController kannst du vor dem Push auch noch verschiedene Parameter übergeben, wie Hintergrundfarbe, Titel, etc. jenachdem was du programmiert hast. Die Klasse UIViewController kann auch eine Klasse von dir sein, vorausgesetzt diese erbt von UIViewController. Dann kannst du dir deinen eigenen View programmieren.Code:UIViewController *viewController = [[UIViewController alloc] init]; [self.navigationController pushViewController:viewController animated:YES];
Hallo,
ich habe da noch 2 Fragen:
Am meisten gibt es ja Buttons, die in der .m-datei eine Action haben. Leider ist es bei mir immer so, dass, wenn ich diesen Button drücke, die Konsole eine Exception wirft und die Main-Datei das Signal SIGABRT zeigt. Im Simulator bleibt das Programm einfach stehen (die App stürzt nicht ab!).
Dann die 2:Zitat von Konsole
Ich habe eine App mit einer Tabbed-Application gemacht und alles nach dieser Anleitung gemacht (aber nach der neuen Xcode Version angepasst):
siehe hier.
Hoffe mir kann man helfen
electrofrack
Klar siehst du nichts, in dem Tutorial steht auch nicht das du die Delegates und den Datasource setzt. Das musst du aber machen:
Mach das und es sollte funktionierenCode:[tableView setDelegate:self]; [tableView setDataSource:self];
In welcher Methode?
===Codes===
Storyboard: siehe Anhang
linker View Controller: Klasse = ViewController
rechter View Controller: Klasse = webView
ViewController.h
ViewController.mCode:// // ViewController.h // // // Created by electrofreak on 23.07.13. // Copyright (c) 2013 electrofreak. All rights reserved. // #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UITextField *username; @property (weak, nonatomic) IBOutlet UITextField *password; @property (weak, nonatomic) IBOutlet UILabel *status; @property (weak, nonatomic) IBOutlet UIButton *ready; - (IBAction)ready:(id)sender; @property (weak, nonatomic) IBOutlet UIButton *link; - (IBAction)nokeyboard:(id)sender; - (IBAction)nk:(id)sender; @end
webView.hCode:// // ViewController.m // 2 // // Created by electrofreak on 23.07.13. // Copyright (c) 2013 electrofreak. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. _link.hidden = YES; _status.text = @"Status: Unauthentifiziert"; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)ready:(id)sender { //Check what user types if (([_username.text isEqualToString:@"//username"]) && ([_password.text isEqualToString:@"//password"])) { _status.text = @"Status: Authentifiziert"; _link.hidden = NO; } //Von diesen ifs folgen weitere, machmal mit Sonderzeichen (ú,? usw.) } - (IBAction)nokeyboard:(id)sender { [sender resignFirstResponder]; } - (IBAction)nk:(id)sender { [sender resignFirstResponder]; } @end
webView.mCode:// // webView.h // 2 // // Created by electrofreak on 29.07.13. // Copyright (c) 2013 electrofreak. All rights reserved. // #import <UIKit/UIKit.h> @interface webView : UIViewController @property (weak, nonatomic) IBOutlet UIWebView *webView; @end
Code:// // webView.m // 2 // // Created by electrofreak on 29.07.13. // Copyright (c) 2013 electrofreak. All rights reserved. // #import "webView.h" @interface webView () @end @implementation webView - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"//URL versteckt!"]]]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
edit: Scheint so, als würde es an dem verstecktem URL liegen. Direkt beim Laden erscheint so ein Pop-Up mit einem Benutzernamen und Passwort-Eingabefeld, vielleicht liegt's daran? Ich hab mal so'ne ähnliche App gebaut, bei der im linken weiß ist, wenn die Site aufgerufen wird, vielleicht ein Fehler? Bzw. eigentlich müsste ich ja, für den Anfang zumindest, nur wissen, was Signal SIGABRT ist.
Jetzt, nach Umänderung der App gibt es folgende Ausgabe:
2013-07-31 16:37:55.198 2[11344:c07] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'Push segues can only be used when the source controller is managed by an instance of UINavigationController.'
*** First throw call stack:
(0x1d47012 0x10d2e7e 0x46cf31 0x45eb99 0x45ec14 0x10e6705 0x1a2c0 0x1a258 0xdb021 0xdb57f 0xda6e8 0x49cef 0x49f02 0x27d4a 0x19698 0x1ca2df9 0x1ca2ad0 0x1cbcbf5 0x1cbc962 0x1cedbb6 0x1cecf44 0x1cece1b 0x1ca17e3 0x1ca1668 0x16ffc 0x28ed 0x2815)
libc++abi.dylib: terminate called throwing an exception
(lldb)
edit: Nach Übersetzung umgeädert auf "modal", dann funkt alles, der URL wird aber falsch angezeigt (weiß, obwohl wie gesagt ein Alert erscheinen sollte). What should I do ?
Also das mit der Tabelle und den Delegates, das muss in die ViewDidLoad.
Zu der anderen App:
Ruft im WebView die URL "\\URL versteckt!" auf. Klar ist das weiß, die Adresse existier ja auch nicht. Probier mal sowas wie "www.eforum.de", das sollte klappenCode:[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"//URL versteckt!"]]];
Ne, in der echten App ist da ja ein URL. Und trotzdem ist es weiß...
edit:
Ich habe den URL gerade per Safari genauso aufgerufen, wie er im Code steht und ich kam definitiv auf die richtige Seite.
Was allerdings anzumerken ist, ist folgendes:
Nehme ich diesen Pop-Up raus, geschieht dies nicht. Leider wäre es für mich aber wichtig, diesen drinzulassen. Wenn da garnichts geht, muss ich ihn wohl rausnehmen.
Andere Frage: Wie kann ich einen String nach einem bestimmten Teil durchsuchen, beispielsweise:
Hast du eigentlich Apps im AppStore, wenn ja, welche?Code:if (_textfield.text == @"%s@", @"jumptoworkspace") {//%s@ = Substring NSLog (@"Textfeld enthält jumptoworkspace"); //Kriege grade keinen Tab rein } //Hoffe, du konntest so verstehen, was ich meine.
Hast du denn im Storyboard den WebView auch mit der Variable verbunden?
Zu deinem Substring:
NSString *string = @"hallo Welt";
if ([string rangeOfString:@"Welt"].location == NSNotFound) {
NSLog(@"Enthält kein Welt");
} else {
NSLog(@"Enthält Welt");
}