Pregunta

Este es mi primer post en SO, así que ¡Hola!

Soy nuevo en Xcode y Obj-C también, así que no seas demasiado duro.

Estoy siguiendo la demo de Standford Universidad youtube.com/watch?v=L-FK1TrpUng Por alguna razón me he pegado a un error. En lugar de empezar desde cero prefiero averiguar dónde tengo mal se ha ido.

Ok, así que aquí va.

Tengo dos controladores de vista y actualmente estoy aprendiendo acerca de empuje y pop.

Mis primeros controladores de vista (firstViewController.h) cabecea:

    #import <UIKit/UIKit.h>       
@interface FirstViewController : UIViewController {
    }
     - (IBAction)pushViewController:(id)sender;
    @end

A continuación, este principio se creó en el archivo de implementación (firstViewController.m), como este

#import "firstViewController.h"
    @implementation FirstViewController
    - (IBAction)pushViewController:(id)sender{
}

En este punto, con el IB me ctrl arrastrado desde 'del archivo de propietario' a un 'UIButton' y conectado 'pushViewController'

Sin embargo, en algún lugar a lo largo de la manera en que recibió somekind de error, que no hice caso.

Ahora tengo mi segundo controlador de vista añadido en mi firstViewController.m como esto;

#import "firstViewController.h"
#import "secondViewController.h"

@implementation FirstViewController

    - (IBAction)pushViewController:(id)sender{
     SecondViewController *secondViewController = [[SecondViewController alloc] init];
     secondViewController.title = @"Second"; 
     [self.navigationController pushViewController:secondViewController animated:YES];
     [secondViewController release];
    }

El error que he recibido previamente me pareció dejar de alguna manera desde ctrl arrastrando desde una textLabel en mi secondViewController punta

(secondeViewController.h)

#import "firstViewController.h"
#import "secondViewController.h"


@implementation FirstViewController
- (IBAction)pushViewController:(id)sender{
 SecondViewController *secondViewController = [[SecondViewController alloc] init];
 secondViewController.title = @"Second";
 [self.navigationController pushViewController:secondViewController animated:YES];
 [secondViewController release];
}

Así que me quité las referencias de mi UIButton original mediante clic derecho sobre él en el firstViewController.xib.

Ahora no puedo recrear el enlace desde 'del propietario del archivo' a los 'UIButtons', salida 'pushViewController' (¿es una toma o se trata de una acción?), Ni crear el enlace en mis secondViewControllers NIB 'del propietario del archivo' a el 'UILabel'.

Cualquier ayuda?

Los archivos de proyecto aquí si alguien está interesado. http://zer-o-one.com/upload/files/PushPop.zip

muy apreciado.

¿Fue útil?

Solución

Una salida es un camino que conecta un objeto a otro. Una acción es un nombre de método que se llama en un objeto particular en respuesta a un evento. Cacao utiliza tradicionalmente objetivo / acción mucho para comunicarse, aunque esto está siendo desplazado en parte por bloques.

De todos modos, su proyecto:

El firstViewController.xib cree incorrectamente que el propietario del archivo es una clase de tipo 'FirstViewController'. En realidad es del tipo 'FirstViewController' - como la mayoría de los lenguajes de programación, Objective-C es sensible a mayúsculas para los nombres de las clases. En el Interface Builder, abierta firstViewControlller.xib, seleccione 'del propietario del archivo', abra el inspector y vaya a la pestaña 'i', entonces se corrige el nombre de la clase en la parte superior. Cuando hayas hecho esto, trate de cambiar a la pestaña de conexiones (el que tiene la flecha que apunta hacia la derecha) y debería ver que es correcta de encontrar su clase y su IBAction. A continuación, debería ser capaz de arrastrar el control.

Básicamente la misma observación se aplica a secondViewController.

En caso de que usted es curioso, Objective-C se diferencia de, por ejemplo, C ++ en la que todos los nombres de clase son conocidos en tiempo de ejecución y es posible crear una instancia de una clase a partir de la versión de serie de su nombre. Así es como / ONE se cargan XIBs.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top