Van tableView naar een video [objective-c]

Pagina: 1
Acties:
  • 337 views

Acties:
  • 0 Henk 'm!

  • Zaankantertje75
  • Registratie: Oktober 2010
  • Laatst online: 15-12-2021
Hee beste mensen,

Ik heb hier een tableView.

Afbeeldingslocatie: http://i56.tinypic.com/2uxxw1g.png

als ik op een van de cellen klik wil ik graag een video openen, nu heb ik alleen de code om een video te openen met een aparte knop. en dat link je dan met IB.

Nu denk ik dat je met een cell geen IB connectie kan maken omdat je daar het voorbeeld van de tabel ziet van california enzo. (in IB)

me cell is gecreëerd met deze code:

.m
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
- (NSInteger)tableView:(UITableView *)tableView
 numberOfRowsInSection:(NSInteger)section
{
    return 3;
}

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = 
    [tableView dequeueReusableCellWithIdentifier:@"cell"];
    
    // create a cell
    if ( cell == nil)
    {
        cell = [[UITableViewCell alloc]
                initWithStyle:UITableViewCellStyleSubtitle
                reuseIdentifier:@"cell"];
    }

    //retrieve an image/ Zet een afbeelding naast de titel
    NSString *imagefile = [[NSBundle mainBundle]
                           pathForResource:@"cellimage" ofType:@"png"];
    UIImage *ui = [[UIImage alloc] initWithContentsOfFile:imagefile];
    //set the image on the table cell/ zet hem in de tabel
    cell.imageView.image = ui;
    
    
    //set the main text/hoofd tekst
    cell.textLabel.text = [exercises objectAtIndex:indexPath.row];
    
    //set the subtitle text/ ondertekst
    cell.detailTextLabel.text = @"Management training", @"Ondertiteling hier", @"Ondertiteling hier";
    
    //accessory type /zijn de navigatie pijltjes, er zijn 3 verschillende 
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
    
    //return the cell
    return cell;
}

/*
 // The designated initializer.  Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
        // Custom initialization
    }
    return self;
}
*/


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
    exercises = [[NSArray alloc]
                 initWithObjects:@"BAZO", @"Een minder interessante titel",
                 @"En nog een titel",nil];
    
    self.title = @"Training lijst";
    
    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;
}

// Customize the number of sections in the table view.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


Ik denk dat ik dus programmatisch die koppeling moet maken.

Maar als iemand mij zou kunnen uitleggen hoe?

Ik heb zelf geen idee hoe ik dit op zou moeten lossen, ben dan ook nieuw met objective-c

Zou erg blij zijn als iemand een tip voor me heeft of welke methode ik moet toepassen

Tx voor je tijd

Bram

Acties:
  • 0 Henk 'm!

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Zaankantertje75 schreef op donderdag 28 oktober 2010 @ 13:58:
Nu denk ik dat je met een cell geen IB connectie kan maken omdat je daar het voorbeeld van de tabel ziet van california enzo. (in IB)
Je moet een methode maken die aangeroepen wordt bij het kiezen van een rij.
Voluit heet die methode:
C:
1
2
-(void) tableView: (UITableView*) tableView
        didSelectRowAtIndexPath: (NSIndexPath*) indexPath

In Interface Builder kun je een koppeling maken tussen de table view en de methode.
Via de variabele indexPath kun je dan achterhalen welke rij gekozen is.

Waarschijnlijk zul je een aparte View moeten maken met daar in een video-object. Vanuit bovenstaande methode zul je de View dan moeten inladen en toevoegen.

[ Voor 6% gewijzigd door Icelus op 28-10-2010 15:17 ]

Developer Accused Of Unreadable Code Refuses To Comment


Acties:
  • 0 Henk 'm!

  • Zaankantertje75
  • Registratie: Oktober 2010
  • Laatst online: 15-12-2021
Icelus schreef op donderdag 28 oktober 2010 @ 15:15:
[...]
Je moet een methode maken die aangeroepen wordt bij het kiezen van een rij.
Voluit heet die methode:
C:
1
2
-(void) tableView: (UITableView*) tableView
        didSelectRowAtIndexPath: (NSIndexPath*) indexPath

In Interface Builder kun je een koppeling maken tussen de table view en de methode.
Via de variabele indexPath kun je dan achterhalen welke rij gekozen is.

Waarschijnlijk zul je een aparte View moeten maken met daar in een video-object. Vanuit bovenstaande methode zul je de View dan moeten inladen en toevoegen.
Op een of andere manier krijg ik deze code niet werkend tussen mijn bestaande code.
blijf 2 errors houden:

error: wrong type argument to unary minus

error: expected ';' before ':' token


die 2e code zie ik vaker ben waarschijnlijk ergens zo'n ding vergeten maar die eerste heb ik nog nooit gehad.


Of ik doe het hellemaal fout.

is er nog een andere of (voor als ik iets fout doe) iets simpelere mehtode/code ?

tx anyway!

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Zaankantertje75 schreef op donderdag 28 oktober 2010 @ 16:35:
[...]
Op een of andere manier krijg ik deze code niet werkend tussen mijn bestaande code.
blijf 2 errors houden:

error: wrong type argument to unary minus

error: expected ';' before ':' token
Je topic voldoet nog steeds niet aan de richtlijnen, aangezien je alleen neergooit wat je hebt, maar verder nog geen enkele oplossing die je gevonden hebt, of wat je verder geprobeerd hebt om het op te lossen. Icelus geeft al aan dat je je code gewoon uit kunt voeren als er een event optreed van het selecteren van een rij.

De foutmelding die je krijgt is gewoon een compiler fout, en die moet je in dit geval gewoon zelf op kunnen lossen. Ik doe dit topic dus ook weer op slot.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Dit topic is gesloten.