Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: b145ab5830
Fetching contributors…

Cannot retrieve contributors at this time

223 lines (154 sloc) 7.905 kB
# tabbar based app "ViewControllerDemo"
# WebDemo, DataController, WebDemosSimpleTableViewController und Resources reinkopieren
# FirstViewController loeschen
# SecondView.xib loeschen
# neuen TableViewController WebDemosTableViewController anlegen
# MainMenu.xib aufmachen
# TabBar Controller aufklappen und den FirstViewController rausloeschen
# Dann als erstes Item einen NavigationController reinziehen und dessen Controller Identitaet auf WebDemosTableViewController setzen
# Navigation Item Title auf "Web Demos" setzen
# Dem ersten Tabbar Item den Titel "Deluxe" und das picture frame icon zuweisen.
# den zweiten viewcontroller loeschen
# dafuer einen weiteren navigationviewcontroller reinziehen, viewcontroller class auf WebDemosSimpleTableViewController setzen
# aufklappen, nav item titel auch "web demos"
# Dem zweiten tabbar Item den Titel "Simple" und das text justify icon zuweisen.
# import DataController in WebDemosTableViewController
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [[DataController sharedInstance] numberOfWebDemos];
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
WebDemo *webDemo = [[DataController sharedInstance] webDemoAtIndex:indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell.
cell.textLabel.text = webDemo.name;
return cell;
}
# laufen lassen
# image hinzufuegen:
cell.imageView.image = [UIImage imageNamed:webDemo.imageFileName];
# laufen lassen
# image ist etwas klein: groesser machen
viewDidLoad
self.tableView.rowHeight = 100;
/*
CGRect titleRect = CGRectMake(0, 0, 300, 40);
UILabel *tableTitle = [[UILabel alloc] initWithFrame:titleRect];
tableTitle.textColor = [UIColor blueColor];
tableTitle.backgroundColor = [self.tableView backgroundColor];
tableTitle.opaque = YES;
tableTitle.font = [UIFont boldSystemFontOfSize:18];
tableTitle.text = [curTrail objectForKey:@"Name"];
self.tableView.tableHeaderView = tableTitle;
[self.tableView reloadData];
[tableTitle release];
*/
# laufen lassen
# beschreibung waere schoen. also cellForRowAtIndexPath -> initWithStyle:UITableViewCellStyleSubtitle und cell.detailTextLabel.text = [webDemo description];
# user zeigen, dass man auf die zellen tippen kann:
in (cell == nil)
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator
# laufen lassen
# Wie fangen wir ab, dass getippt wurde und worauf getippt wurde?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
WebDemo *webDemo = [[DataController sharedInstance] webDemoAtIndex:indexPath.row];
NSLog(@"Ausgewaehlt: %@", webDemo.name);
}
xxxx
# File -> New -> New UIViewController with XIB ('WebDemoDisplayViewController')
# WebDemoDisplayViewController -> WebDemoDisplayView.xib
# WebDemoDisplayView.xib oeffnen, navbar + tabbar + uiwebview (+ iboutlet und connections)
# in WebDemosTableViewController #import "WebDemoDisplayViewController.h"
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
WebDemo *webDemo = [[DataController sharedInstance] webDemoAtIndex:indexPath.row];
NSLog(@"Ausgewaehlt: %@", webDemo.name);
WebDemoDisplayViewController *displayViewController = [[WebDemoDisplayViewController alloc] initWithWebDemo:webDemo];
[self.navigationController pushViewController:displayViewController animated:YES];
[displayViewController release];
}
# laufen lassen
# waere schoen, im titel zu sehen, wie das demo heisst. Also: in initWithWebDemo: self.title = webDemo.name;
# laufen lassen
# waere schoen, sich den sourcecode ansehen zu koennen, also File -> New -> New UIViewController with XIB ('WebDemoSourceViewController')
# WebDemoSourceViewController -> WebDemoSourceView.xib
# WebDemoSourceView.xib oeffnen, navbar + tabbar + uitextview (+ iboutlet und connections)
# textview -> non-editable
# im grunde inhalt vom displayview kopieren
# wie zeigen wir dem user jetzt, dass er entweder das gerenderte html oder den source sehen kann?
# im tableviewcontroller #import "WebDemoSourceViewController.h"
# cellForRowAtIndexPath: cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
und
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
WebDemo *webDemo = [[DataController sharedInstance] webDemoAtIndex:indexPath.row];
WebDemoSourceViewController *sourceViewController = [[WebDemoSourceViewController alloc] initWithWebDemo:webDemo];
[self.navigationController pushViewController:sourceViewController animated:YES];
[sourceViewController release];
}
# laufen lassen
# jetzt waere es doch schoen, die tabellen eintraege nach typ zu gruppieren (canvas/css)
# in WebDemosTableViewController:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section == 0) {
return [[DataController sharedInstance] numberOfCssWebDemos];
} else {
return [[DataController sharedInstance] numberOfCanvasWebDemos];
}
}
@interface WebDemosTableViewController(PrivateMethods)
- (Webdemo *)webDemoForIndexPath:(NSIndexPath *)indexPath;
@end
- (WebDemo *)webDemoForIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 0) {
return [[DataController sharedInstance] cssWebDemoAtIndex:indexPath.row];
} else {
return [[DataController sharedInstance] canvasWebDemoAtIndex:indexPath.row];
}
}
//ueber all webDemo = mit dem hier ersetzen:
WebDemo *webDemo = [self webDemoForIndexPath:indexPath];
# laufen lassen (hmmm, kein veraenderung!)
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
if (section == 0) {
return @"CSS Transformations";
} else {
return @"Canvas";
}
}
# laufen lassen
# sektionen deutlicher trennen?
MainMenu.xib oeffnen, einen TableView unter den TableViewController ziehen und delegate und datasource verbinden und style auf grouped setzen
# laufen lassen
# wieder auf plain setzen
# autorotation? in allen 4 view controllern:
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return YES;
}
# laufen lassen
# source view direkt vom webview
#import "WebDemoSourceViewController.h"
in viewDidLoad:
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch
target:self action:@selector(showSource)] autorelease];
- (void)showSource {
WebDemoSourceViewController *sourceController = [[WebDemoSourceViewController alloc] initWithWebDemo:webDemo];
UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController:sourceController];
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
sourceController.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemReply
target:sourceController action:@selector(dismissModalViewControllerAnimated:)] autorelease];
[self presentModalViewController: controller animated: YES];
[controller release];
[sourceController release];
}
# laufen lassen
4:40 - datasource
39:00 - autorotation wichtig!
Jump to Line
Something went wrong with that request. Please try again.