>> RHED SHI: Bienvenido a ver seminario CS50 -
Introducción a iOS.
Gracias a todos por venir.
Espero que estés tan emocionado como yo por iOS.
El año pasado, tomé CS50 en su segundo año, y básicamente aprendí iOS para mi
proyecto final.
Y era bastante -
así, no fue fácil, pero hay un montón de tutoriales de apoyo en línea.
Y realmente espero que con esta seminario, te voy a dar ustedes una cabeza
comenzará el desarrollo iOS
>> Por lo tanto, en términos de desarrollo de iOS, hay dos cosas principales que
querer cubrir hoy.
En primer lugar, el idioma -
el idioma se va a estar en Objective-C. Realidad Oiremos
algo realmente emocionante.
Por lo tanto, usted puede unirse a toda la manzana comunidad de desarrolladores y crear un poco de
aplicaciones realmente impresionantes.
>> Además, iOS 7 es hermoso, es de esperar, para algunos de ustedes.
Pero es controversial, ya lo sé.
Y sobre todo, lo que yo quiero hacer es guía a través de Objective-C, y también
Xcode, que es el integrado entorno de desarrollo que podrás
trabajando en para iOS.
>> Y así, sólo una palabra en Objective-C. Básicamente, es exactamente lo mismo que C,
pero con un montón de otras cosas.
Y así, de manera más estricta, en realidad es un super-conjunto de C. Así que cualquier cosa que usted
puede hacer en C en este momento, que es desea básicamente pset 0 a 6,
puede hacer en Objective-C.
>> Así, no se siente miedo de esta nueva lenguaje que vas a aprender.
Usted ya ha cubierto una gran cantidad de la misma, porque todos lo han hecho C el pasado
semestre, excepto que ahora te vas tener mucho más para trabajar.
Y yo sólo voy a conducir a través de un par de ejemplos para poner de relieve algunas
de las principales diferencias que encontré fueron cuando realmente importante que aprendí
Objective-C el año pasado.
>> Bueno, en realidad, por lo que, el otro punto es, Objective-C es, obviamente,
Orientado a Objetos.
Y vamos a discutir un poco acerca de lo que significa eso más tarde.
Básicamente, es como la forma en que trabajó con estructuras de este conjunto de procesadores pasado, con
linfáticos y otros similares cosas así.
Excepto, en Objective-C, todo es un objeto, y que va a ser
que pasa alrededor de los punteros a los objetos en lugar de los propios valores.
Por lo tanto, es sólo algo importante a tener en cuenta.
>> Así que, ¿por qué no empezamos con algunos las diferencias en la sintaxis entre C y
Objective-C?
Quiero resaltar el # include, que saber, io.h estándar en C y C + +, con
la versión de Objective-C de eso, lo que es # import, y luego una especie de
archivo de cabecera.
En este caso, sería UIKit, ya sabes, recortar UIKit.h.
También podría ser, ya sabes, MKMapView a usted slash MKMapview.h si quieres
que hacer, como, un mapa dentro de su aplicación.
Cosas similares por el estilo.
>> Por lo tanto, lo importante es incluir ahora ha cambiado a importar.
Pero la idea sigue siendo.
Vas a ser una especie de importar de archivo de cabecera en su programa.
>> También quiero resaltar la diferencia entre printf y NSLog.
Sin embargo, como hemos dicho antes, Objective-C es una estricta super-conjunto de
C, lo que significa que existe printf en Objective-C, también.
Pero, la mayoría de la gente no utiliza eso.
La mayoría de la gente usa este NSLog porque te da una indicación de la hora, y ya veremos
en acción más tarde.
Pero, por lo general es una mayor utilidad manera de imprimir variables.
>> Y también quiero destacar que NSLog toma exactamente de la misma
valores de marcador como printf hace -
así que% d es para un int, % F está para un flotador.
Sin embargo, sí quiero resaltar este último de ellos -
NSLog% en señal -
que es un marcador de posición para un objeto.
Y como he dicho antes, ofertas de Objective-C más o menos en su mayoría en los objetos,
por lo que este vendrá en uso cuando desee imprimir, tal vez, tal vez una
NSArray o NSDictionary, o un NSString.
>> Así, también, notar que, en nuestra NSLog declaración, tenemos una arroba delante
de la cita -
que es para significar que las cadenas, ahora, en Objective-C son objetos.
Ya no son simplemente carac estrellas.
Son objetos y son tratados como tales.
>> Por lo tanto, es muy importante que cuando utiliza NSLog se necesita en un NS
cadena, lo que significa que usted tendrá para incluir una en frente de su
comillas.
Y es por eso que se ve, aquí, en todas mi función llama a este NSLog, I
tener al frente de las citas, incluso aunque el% dy el f de% son
todos la misma a partir de C.
>> Cualquier pregunta hasta ahora?
Voy a tratar de pasar por esto rápidamente para que podemos tener más tiempo para trabajar
con Xcode y Objective-C, por lo que que ustedes pueden obtener más
familiarizado con él.
>> A continuación, quiero destacar algo conceptualmente importante.
Así, en C, la mayoría de las cosas son las funciones.
Hacemos una llamada a la función.
Declaramos funciones de esta manera, con el retorno de tipo primero, entonces el
nombre de la función, los paréntesis, y luego sean cuales sean los argumentos y el tipo de
estos argumentos que queremos pasar pulg
Y Objective-C, porque todo es un objeto o una clase -
por lo que la clase y el objeto son dos términos que son en su mayoría sinónimos entre sí,
así que puede usarse indistintamente durante todo el seminario.
>> Pero, verás que tenemos métodos en Objective-C en lugar de funciones.
Y métodos pertenecen a los objetos.
Así como, tal vez tomar Por ejemplo, el nodo -
nuestro tipo de [inaudible]
nodo desde el conjunto de procesadores 6 o 5 -
Tenemos también la palabra, la propiedad, o el siguiente puntero del nodo.
Los métodos son simplemente funciones dentro de algún tipo de estructura.
>> Así, en este caso, la estructura sería el objeto, y entonces el método es
algo que pertenece a un objeto.
Y así es como usted desea declarar, más o menos, un método.
Se podría empezar, de nuevo, el regreso tipo - así, traté de colores
codificar las palabras clave aquí para que ustedes puede ver el, al menos, el formato
similitudes entre la función declaraciones y declaraciones de métodos.
Así, se empieza con, ya sabes, un retorno tipo - en este caso, es una matriz, o
un puntero NSArray -
y entonces usted tiene este método.
Y luego, lo que es interesante aquí es que en lugar de tener paréntesis, nos
tener estos dos puntos.
Y entonces, frente a nuestros argumentos, poner, de nuevo, entre paréntesis el tipo
de nuestro argumento.
>> Así que, ahora que estoy tratando de hacer que el comparación entre, ya sabes, ny
número, porque son ambos enteros similares.
Y luego, el otro es un tipo NSUInteger.
Y entonces, con Objective-C, cuando se desea tener varios argumentos en
su cláusula método, usted, más o menos, separarlos un poco como esto -
No estoy muy seguro de cómo describirlo, pero este es un buen ejemplo de cómo se
puede tener varios argumentos en ese país.
>> Usted podría, por supuesto, sólo totalmente ignorar el colon andArray NSArray
array si quería sólo un método que lleva en un argumento.
Sí, se trata.
>> AUDIENCIA: ¿Son ambos NSUInteger y Argumentos NSArray que se pueden tomar en
dentro de la NSArray?
>> RHED SHI: Si.
Por lo tanto, permítanme explicar.
Así que, sí.
Entonces, la pregunta era son NSUInteger y NSArray * tipos de los argumentos,
y eso es correcto.
Por lo tanto, uno siempre quiere especificar qué el tipo de su argumento es.
Y aquí, estoy tratando de presentarles a parte de la sintaxis y vocabulario de
Objective-C, por lo que esos son tipos reales que usted va a estar tratando con.
>> Y como usted notará, matrices Ya no son, más o menos,
cosas simples soporte.
Son objetos.
Aunque, si nos vamos a la siguiente diapositiva, podemos ver que podemos
codificar un NSArray en Objective-C con simplemente un símbolo en frente
los soportes.
No soy, en realidad, muy seguro de si Me sintácticamente codificamos un array
correctamente para la versión C, pero eso es se supone que en una matriz de C.
>> Por lo tanto, esta es la forma en que usted, usted sabe, quizás usar las funciones o la
métodos que hemos creado anteriormente.
¿Cierto?
Por lo tanto, aquí es donde nos declaramos nuestro función y nuestro método.
Y ahora queremos utilizarlos en nuestro programa, y ​​esto es
cómo íbamos a hacerlo.
Así, en C, que tendría, ya sabes, quizás, un bool b, y lo establece en
igual a la función, y luego se pasa en los argumentos.
>> En Objective-C, es bastante o menos lo mismo.
Usted tiene NSArray * my_array, y es va a ser igual a - ahora, la única
diferencia aquí es esta cosa objeto, que he resaltado en amarillo, y
como se puede ver, en C, hay no hay otra palabra amarillo.
Y es porque los métodos pertenecen con un determinado objeto.
Así que por eso tengo que tener un objeto que, más o menos, llama a este método en
el número cero, y luego la NSArray a, b, c, d.
¿Tiene preguntas sobre eso?
>> Veremos estos conceptos en acción muy pronto cuando entramos en una demo.
Aceptar.
Ahora, quiero hablar un poco brevemente sobre Xcode 5, que es el
entorno de desarrollo integrado que usted va a trabajar con.
Sé que muchos de ustedes, o algunos de ustedes, no tienen Mac, que es un problema
porque Xcode no está disponible para Windows y PC.
No me preguntes por qué, pero probablemente -
sí, corporativa.
Lo que sea.
Pero de todos modos, por lo que pido disculpas si algunos de usted no tiene que descargar algún tipo de
máquina virtual para Mac en Para poder ejecutar Xcode 5.
Pero es una ingeniosa bastante software a utilizar.
>> Y así, antes de sumergirse en cualquier tipo de demostración, sólo quiero que una muestra
imagen de lo que Xcode se ve como en su ventana, y luego también hablar de
lo que todo este espacio es.
Por lo tanto, es algo así como aprender a utilizar Microsoft Word, a excepción de que deseas
familiarizarse con toda la diferentes cosas que
están pasando aquí.
>> Así que en primer lugar, quiero señalar que a la barra de herramientas en la parte superior.
Vas a ver que, en la parte superior, que tendrá el nombre del archivo -
o, en realidad, el nombre del proyecto y luego el nombre del archivo.
Tome nota de la obra y los botones de parada.
Esos son los que usted será utilizando para ejecutar su aplicación en la
simulador -
el simulador de iOS.
Esto viene automáticamente con Xcode 5, por lo que no tiene que preocuparse de
la descarga de algún tipo de simulador.
Sólo presiona el juego y a continuación, se ejecuta la aplicación.
Y usted puede jugar con usted, y verás cómo funciona después.
>> Y entonces, en el centro, por supuesto, es donde todo el código bello es
va a ir.
Y luego, en el lado izquierdo, se le tener presente, más o menos, una carpeta -
navegación -
y entonces, usted también verá que, a lo largo de con el icono de la carpeta, hay un
montón de otros iconos de ahí que será útil más adelante.
>> Y luego, en el lado derecho es una utilidad zona en la que se puede trabajar con
algunos de los objetos y especificar, se saber, ¿cuál debe ser el color, lo que
la fuente del texto debe ser, et cetera.
A pesar de que todo lo que haces en el área de servicios públicos, se puede
hacerlo en código.
Y por eso, voy a ir a través de dos ejemplos del uso de, simplemente, no hay código en
todos - o código muy mínimo -
versos todo el código, sólo para que ustedes sabe lo que puede y no puede hacer en
Xcode y Objective-C.
>> Y luego, finalmente, hacia abajo en la parte inferior, usted tiene la zona de depuración.
Por lo tanto, ya no tiene que correr GDB, etcétera, en sus programas.
Automáticamente lo hace por usted.
Y también se puede imprimir cosas para esta área.
Así que en realidad, más tarde, vamos a pasar por mario.c, si ustedes todavía recuerdo
que, en Xcode.
Así que debe ser divertido.
>> Y entonces, justo para que vuelva a Objective-C, quiero destacar lo
que puede hacer con IF.
Así que, ya sabes, porque Objective-C es un superconjunto de C, todo lo que haces es,
literalmente, la misma que C. Sólo tener ligeras diferencias.
Por lo tanto, se dará cuenta de la forma de un if declaración sigue siendo la misma - que tiene
si, y entonces usted tiene paréntesis con una condición dentro de, y luego
llaves para lo que querer hacer dentro de allí.
>> Sin embargo, yo quería poner esta diapositiva hasta aquí, simplemente para ilustrar que,
porque estamos tratando con objetos ahora, vamos a tener que utilizar estas cosas
llamado así, es igual a la cadena, que es, casualmente, un método de una
cadena o un objeto NSString.
Así, palabra, en este caso, es un NSString objeto, y tiene un método llamado es
igual a la secuencia, y después estamos pasando en una cadena fija para ver
si los que son iguales el uno al otro.
>> Cualquier pregunta hasta ahora?
Aceptar.
Y, quiero ir una para la declaración también.
>> Así, por ejemplo, si quisiéramos bucle sobre la longitud de una cadena en C, esta
debe ser familiar para usted.
Y, en Objective-C, quiero para resaltar este, más o menos,
método llamado conteo.
Bueno, en realidad, me dejó simplemente tomar lo dicho.
Count es un método de matriz.
Sin embargo, es más específicamente un propiedad de la matriz, por lo que usted
puede utilizar la notación de puntos.
Pero yo no quiero entrar en demasiado de esto conceptual, sólo quiero
para mostrar cómo se verían las cosas como en Objective-C frente a C.
>> Y también, quiero señalar que a pesar de que he estado usando NSUInteger
delante de todos mis íes en Objective-C, también puede utilizar int, int, porque es
totalmente válido en Objective-C, también.
¿Sí?
>> AUDIENCIA: ¿Es sólo estilística, o es -
>> RHED SHI: Si.
Así que, como se verá -
así, la cuestión es que era sólo una cuestión de estilo.
Como verás, tengo una especie de, estrella cosa asterisco hacia abajo en la parte inferior, y
ese enlace te lleva a un desbordamiento de pila formar, en la que alguien explica
la diferencia entre un int en NSInteger y un NSUInteger.
Y por eso, usted puede leer sobre esto más adelante.
Estas diapositivas serán, por supuesto, disponibles para usted.
>> Vamos a ver.
Aceptar, impresionante.
Así, esta también se incluye en la diapositiva porque pensé que era un gran
sitio web que introduce a la sintaxis de Objective-C.
Así que, en realidad, ¿por qué no nos movemos a Chrome y echa un vistazo a este sitio web?
>> Derecha.
Por lo tanto, lo que yo quiero mostrar chicos aquí es esta imagen.
Por lo tanto, esto es, más o menos, va a ser lo usted va a ver el interior de cualquier
Archivo de Xcode.
En realidad, ¿por qué no nos tomamos un momento, más o menos, tome este pulg
>> Por lo tanto, este libro -
ese es el objeto que que estamos tratando.
Y entonces, es obvio que va a ser heredado de algún otro objeto, pero
usted no tiene que preocuparse por eso.
Y entonces, tal vez, tiene algunas variables miembro.
>> Lo importante que quiero mostrar son los métodos de instancia, aquí.
Así, los métodos de instancia se denotan por este signo menos.
Y entonces, como te darás cuenta, que estamos ya está empezando a ver el paradigma
para la declaración de método, ¿verdad?
El tipo de cambio, el nombre del método, y entonces el tipo del argumento, y
a continuación, el nombre del argumento.
Y este signo menos significa que se trata de una método de instancia, lo que significa que
estos métodos sólo están disponibles para objetos que han sido instanciados.
>> Para contrastar que, los métodos con un plus firmar en frente de ellos son de clase
métodos, lo que significa que usted puede llamar estos métodos, incluso si usted no tiene
un objeto creado todavía.
Así, por un claro ejemplo, NSString es una clase.
Y usted puede llamar, por ejemplo, métodos de la clase sobre NSString -
el real, como, palabra NSString.
>> Sin embargo, con el fin de utilizar estos métodos, en realidad se
tenga que crear una cadena.
Por ejemplo, la cadena estrella NSString es igual en comillas, hola mundo.
Y entonces, usted puede utilizar estos métodos -
métodos de instancia -
en esa cadena hello world.
Por lo tanto, esa es la diferencia entre métodos de instancia y métodos de clase.
>> Y, nosotros acabamos de cubrir esta parte.
Las propiedades son otra cosa que son dentro de los objetos, básicamente.
Y se declaran con la palabra clave en la propiedad.
Dispone de las siguientes opciones, aquí, que te lo explicaré más tarde, cuando
entramos en una demo.
¿Sí?
Hola.
>> AUDIENCIA: ¿Puede acercar, por favor?
>> RHED SHI: Oh, sí.
Lo siento.
>> AUDIENCIA: Gracias.
>> RHED SHI: Eso debería ser mucho mejor.
>> AUDIENCIA: Si.
Gracias.
>> RHED SHI: Sí, por favor recordarme si Me olvido de acercar o alejar la imagen.
Así que, esto es todo lo que quería para mostrarle a -
Whoa, eso es un montón -
para este sitio web.
Por lo tanto, vamos a volver a nuestras diapositivas.
>> En realidad, ahora vamos a tomar un momento sumergirse en un demo.
Por lo tanto, vamos a empezar con un nuevo proyecto de Xcode.
Así que, si me abres Xcode en todos sus máquinas, se deben tomar algún
página donde dice, como, ya sea abierta hasta un proyecto ya existente o una nueva
proyecto, y que debiera haga clic en un nuevo proyecto.
Y luego, hay que tomar usted a esta pantalla.
¿Sí?
>> AUDIENCIA: Si no tenemos un Mac, nos limitamos tipo de Chill?
>> RHED SHI: O busque en con alguien, sí.
Sí.
Usted puede relajarse, también.
Aceptar.
>> Entonces, ¿qué vamos a hacer en primer lugar, ahora, es, en realidad, vamos a hacer una
aplicación de vista individual.
Así que, si te fijas, lo que es genial acerca de Xcode y soporte de Apple para
los desarrolladores es que usted tiene una gran cantidad de plantillas para trabajar con ya.
Podría, por ejemplo, hacer una aplicación principal-detalle.
Usted puede hacer un juego -
y, de hecho, yo no voy a entrar en los juegos, porque los juegos son una historia diferente
para el desarrollo de iOS.
Y están especie de separar, así que no voy a entrar en eso.
>> Entonces, usted ha basado en páginas de aplicaciones.
Tiene una aplicación de pestaña -
por lo que desea, por ejemplo, Bank of America probablemente tiene, como, una aplicación de pestañas.
Es aquellos en los que tiene los botones en la parte inferior.
Y entonces, usted tiene un juego Kit Sprite.
>> O usted puede trabajar a partir de cero, lo que es lo que vamos a hacer después.
Pero vamos, en primer lugar, comenzar con una aplicación única vista.
Entonces, va a pedir el nombre del producto, y sólo podemos hacer la prueba.
Nombre de la organización -
así, nombre de la organización, identificador de la compañía -
esos son importantes si usted va para poner su aplicación en la App Store.
Aparte de eso, el código se va a funcionar absolutamente bien sin esto.
>> Esto va a ser importante si se desear - así, per se, como, poner su aplicación
en el teléfono o algo así, y la prueba de hacia fuera, ya sabes, en la vida real -
esto será importante.
Esto tiende a ser por lo general asociada con algún tipo de cuenta de desarrollador
con Apple.
>> Y así, lo sé, probablemente, muchos de ustedes no tendrá ninguna cuenta de desarrollador.
Sé que la universidad tiene uno.
Creo que CS tiene una.
Pero, usted puede enviarme un correo electrónico y voy a tratar para darse cuenta de eso para usted.
Pero en este momento, acabo de poner en algunas cosas de marcador de posición aquí.
>> Y usted puede, por supuesto, aquí, elija si usted quiere que sea únicamente en
iPhone, iPad en, o ambos -
aplicación universal.
Así que, por ahora, vamos a hacer universales, sólo para ver ambos lados de la plataforma.
>> Vamos a ver.
Así que, ahora mismo, me voy a ahorrar en algún tipo de carpeta.
No importa donde - usted Siempre se puede mover más tarde.
Y, ahora, somos llevados a nuestro proyecto Xcode.
Yo no me preocuparía por todo esto.
Yo sugeriría que no tocar ninguno de esto, a menos que sepa exactamente lo que
que estás haciendo.
Así que, todo esto, simplemente ignoran en su mayor parte.
Usted no tendrá que tocar, y si se fastidiarla con algunas cosas aquí,
se pone un poco complicado.
>> Así que, ¿por qué no nos miramos en los archivos de la
lado izquierdo de nuestro navegador.
Aquí, tenemos AppDelegate.h.
Tenemos AppDelegate.m Así que, como usted aviso, hemos encabezado archivos, que
terminar en punto h, y tenemos aplicación -
En realidad, déjenme agrandar
Aceptar.
Permítanme agrandar
>> Derecho, por lo que ha encabezado y archivos usted tiene archivos de implementación.
En realidad -
Aceptar.
Esto es un poco raro, pero tengan paciencia conmigo.
Entonces, debido a que hemos elegido una sola vista aplicación, nosotros vamos a ser
el trabajo con storyboard.
>> Así, storyboard es algo que Apple ha llegado con para ayudar realmente a
los desarrolladores crear rápidamente prototipos sus aplicaciones.
Por lo tanto, aquí es donde usted puede crear una aplicación sin necesidad de escribir una
sola línea de código.
Sin embargo, en la solicitud de vista individual, lo que hacemos, por supuesto, tenemos un
declararse en nuestra opinión, que es un controlador de vista.
Así, tenemos el encabezado y el archivo de implementación, aquí.
>> Y, me voy a alejar ahora porque tendremos que trabajar en el guión gráfico.
Así que, aquí está nuestro punto de vista.
Si nosotros, simplemente, ejecutar la aplicación en este momento, no hay mucho emocionante pasando.
Así, verá esta pantalla blanca.
¿De acuerdo?
>> Y, en nuestra área de servicios, podemos añadir un montón de cosas diferentes a ella.
Por lo tanto, cuando usted está tratando con pantallas en iOS, los controladores de vista son el
objetos que encapsulan, más o menos, sus puntos de vista.
Por lo tanto, un controlador de vista siempre tiene una propiedad llamada vista.
Y ese punto de vista, por lo general, contiene, ya sabes, lo que
desee ver en una pantalla.
>> Así que, bueno, vamos a empezar por poner, tal vez, tal vez una etiqueta.
Por lo tanto, vamos a poner una etiqueta en allí -
pegarlo en el centro.
Así que, ahora que he hecho clic en la etiqueta, que puede entrar en el inspector de propiedades
y empezar a cambiar su valor.
Llamémoslo CS50 Colores.
>> Y, también puedo cambiar la fuente.
Así, en lugar de sistema, haciendo que es el valor por defecto, podemos hacer uno personalizado.
Podemos cambiar -
ya sabes, ultraligero, lo convierten en 32.
Y entonces, podemos hacer nuestra caja más grande.
>> AUDIENCIA: ¿Cree usted que se puede acercar en sólo un poco más, tal vez?
>> RHED SHI: ¿Sí?
Aceptar.
>> AUDIENCIA: Sólo aprovecharlo?
>> RHED SHI: Veamos.
¿Funciona esto?
>> AUDIENCIA: Simplemente pase el Xcode?
>> RHED SHI: Seguro.
Aceptar.
Impresionante.
>> AUDIENCIA: La etiqueta bajo?
La etiqueta?
>> RHED SHI: ¿Qué es eso?
>> AUDIENCIA: ¿Cuál desplegable era la etiqueta bajo?
>> RHED SHI: Entonces, la pregunta era: ¿qué desplegable era la etiqueta bajo?
Se debe, simplemente, estar bajo aquí.
Supongo que es una cosa cubo.
Pero por lo general, este es el valor por defecto -
Sólo voy por aquí hasta que encuentre una etiqueta.
Sí.
>> Así que ahora, tenemos nuestro sello.
Vamos a centrarla.
Y Xcode nos da directrices para el centrado de objetos.
Así que, ahora vamos a ejecutar nuestro código nuevo.
>> Eso es.
Así pues, tenemos CS50 Colores.
Y ahora, vamos a poner un botón allí, ¿verdad?
Porque queremos hacer este interactivo.
Por lo tanto, vamos a poner un botón aquí.
Y vamos a llamar a este botón "tap aquí para continuar. "Vamos a centramos, también
En realidad, ya está centrado.
Sí.
>> Así que, ahora que tenemos un botón.
Y si nos encontramos de nuevo, vamos tener un pequeño botón agradable aquí.
Y puedo hacer clic en él, pero no lo hace nada, porque no hemos hecho
nada con el botón todavía.
>> Por lo tanto, vamos a crear otro punto de vista, ¿no?
Así que, digamos que quiero aprovechar ese botón y quiero
ir a otra página -
otro punto de vista.
Lo que voy a hacer es, puedo crear un controlador de vista, ¿no?
Ahora voy a hacer clic en el botón de mi, y luego, lo importante es que me voy a
haga clic en - o -
sí, control de la prensa en mi teclado.
De control.
Haga clic en el botón y, a continuación, arrastre.
>> Así, recuerda que mantenga pulsada la tecla control.
Vamos a hacer eso de nuevo.
Por lo tanto, mantener el control, haga clic y arrastre a lo que quieres hacer.
Aceptar.
>> Y ahora, tengo varias opciones aquí.
Puedo o empujar, o que pueda hacer un modal, o que pueda hacer un encargo.
Push es sólo si tiene una controlador de navegación.
Ahora mismo, nuestra primera vista controlador no está dentro de cualquier
controlador de navegación.
Por lo tanto, el control de navegación es el que le da el botón Atrás de
la aplicación de iOS, donde usted tiene, usted sabe, que la parte superior, una especie de, barra gruesa -
donde se puede ir hacia atrás, o hacia adelante, et cetera.
En este momento, no tengo eso.
Y así, es por eso que no puedo hacer un empujón.
>> Por lo tanto, hice clic en empuje accidentalmente, aquí.
Y, de hecho, vamos a ejecutar el código, y debe estrellarse en mí.
Sólo si presiono el botón sin embargo, así -
derecha.
Por lo tanto, esto es malo.
>> Y, como se puede ver, aquí, tener el mensaje de error.
Por lo tanto, "segues empuje sólo pueden utilizarse cuando controlador de la fuente es administrado por un
instancia de control de navegación de interfaz de usuario ". Por lo tanto, porque esto no estaba dentro de un
controlador de navegación, Yo no podría hacer eso.
>> Así que, ahora mismo, voy a volver a la carpeta, que se remonta al guión gráfico.
>> AUDIENCIA: ¿Cuál es la navegación controlador, otra vez?
>> RHED SHI: Entonces, ahora te voy a mostrar.
Vamos a ver.
Así que, voy a hacer clic en este punto de vista controlador, y luego me voy a ir
hasta el producto -
En realidad, no, lo siento - editor.
Y yo voy a ir a -
en realidad, lo hago clic en él?
No.
Eso es.
Voy a subir al editor, bajar para empotrar en, y luego la navegación
controlador.
>> Aceptar.
Y, mi espacio de trabajo se ve muy desordenado, así que vamos a limpiar esto.
Por lo tanto, todo esto es storyboard.
Y de esta manera -
Aceptar, deje de -
Puedo construir algo rápidamente como este.
Y entonces, ahora puedo volver atrás, ¿sabes?
>> Pero esto es un poco aburrido, ¿verdad?
Por lo tanto, lo que yo quiero hacer es, no quiero de hacer, simplemente, una opinión
controlador.
Digamos que yo quería hacer en realidad un controlador de vista de tabla, para que pueda poner en
algunos colores agradables, en la tabla.
>> Así que, ahora que he puesto en mi vista de tabla controlador, que necesito para conectarlo de nuevo
de este botón para la controlador de vista.
Así que tengo que hacer mi control, clic, lo arrastra de nuevo.
Y ahora que puedo hacer empujón, porque puedo incrustar dentro de un controlador de navegación.
>> AUDIENCIA: controlador de navegación sólo le permite ir de un lugar a otro?
>> RHED SHI: Si.
Por lo tanto, más técnicamente, es un objeto donde -
por lo que, en el interior de la barra de navegación objeto controlador,
realiza un seguimiento de una matriz.
Y esa matriz contiene toda la posterior ver controladores.
Por eso cuando se presiona hacia atrás, vuelve a la página anterior.
Debido a que el controlador de navegación objeto, o el código que se encarga de
este objeto, tiene una matriz que mantiene seguimiento de estos controladores de vista, y
puede entonces, usted sabe, dq la vista controlador y le devolverá la
anterior.
>> Por lo tanto, éste es un asunto técnico, sino -
y yo te mostraré más adelante en código, si tenemos tiempo.
Soy una especie de quedarse sin tiempo, pero -
>> Así que, con la vista de tabla, lo que podemos hacer es -
Por lo general se ajusta automáticamente Dynamic Prototype -
vamos a hacer que las células estáticas, de lo contrario vamos a
encontrarse con algunos problemas.
>> Y luego, vamos a decir que voy tener una sección.
Así, las secciones es como -
si alguna vez has visto la aplicación de música, cuando tiene artistas, secciones haría
ser los Atléticos a través Z's -
las letras -
y luego, ya sabes, el individuo filas serían los nombres de los artistas.
Y así, lo que está de moda aquí, es que no puedo acceder a todos los objetos en el interior
de mi guión gráfico a través de este menú desplegable, también.
>> Por lo tanto, voy a hacer clic en mi sección, y quiero, ya sabes, tal vez cinco filas.
Y luego, en el interior de cada fila, Quiero poner una etiqueta.
Y voy a llamar a este azul.
Y entonces, quiero poner un punto de vista de interfaz de usuario, que sé, tal vez por, como, una pequeña caja.
>> Para que yo pueda mostrar a la gente una vista previa del color.
Y yo voy a volver a la propiedad y cambiar ese color a, oh, no lo sé
saber, éste.
>> Y luego, observe también, aquí, cuando tengo los accesorios, que pueden tener una gran cantidad
de los diferentes accesorios que normalmente se ve.
El indicador de la divulgación, el detalle, o marca de verificación, o simplemente detalle.
Así que, tal vez podamos hacer, como, una revelación indicador, por ejemplo.
>> Y entonces, ¿por qué no hacemos esto, copia pegarlos, y ponerlos en el
siguiente fila de la tabla.
Por lo tanto, podemos llamar a este amarillo.
Y voy a tener que ampliar esto.
Hagámoslo amarillo.
Y de esta manera, podemos copiar pegar nuestro camino.
¿Qué fue?
Purple.
>> Así, se trata de todo el CS50 típica colores que has visto en clase -
en realidad, lo siento -
o en el sitio web.
Espero que ustedes pueden ver lo que estoy haciendo aquí.
Aceptar.
Una pasada.
>> AUDIENCIA: ¿Cómo se agrega la fila inicialmente?
>> RHED SHI: Entonces, la pregunta era, ¿cómo me añado la fila inicialmente?
Entré en esta sección de la tabla - o la manera en que pueda
seleccionar la sección de la tabla -
y entonces, aquí, he actualizado el número de filas.
>> Y, déjame la esperanza de que esto funciona.
Aceptar.
Vamos a ver si esto funciona.
Oh, perfecto, increíble.
Aceptar.
Mientras yo estaba construyendo mi demo, algunos las cosas no estaban alineados, por lo que, gracias por
los aplausos.
>> Sí.
Por lo tanto, vamos a ver.
Vamos a hacer esto y nueve sólo para hacer todo - o en realidad, vamos a
convertir todos estos en la divulgación indicadores.
Y entonces, lo que quiero mostrar, también, era cómo puedo tomar cada uno de los
filas de la tabla y haga que interactúan -
oh.
No.
>> Oh.
Además, yo quiero mostrar -
aquí, puedo poner el título de mi controlador de navegación, ¿verdad?
Así que en realidad, te darás cuenta, tan pronto como incorporado este controlador de vista interior
del controlador de navegación, vemos esta barra de navegación en la parte superior de nuestra
representación del guión gráfico de un controlador de vista.
Y así, lo que nos da, como, una visual, una especie de, guiar a nuestra pantalla visible.
Esta es, obviamente, va a ser la barra de navegación.
>> Y lo que yo quiero hacer de forma rápida, Ahora, se pone en otro -
por lo que este controlador de vista de tabla que hice por teniendo uno de estos y arrastrándolo
aquí, y eso es lo que me permitió rápidamente, en realidad, crear una vista de tabla
controlador.
Si tenemos el tiempo sin embargo, se le ver que, mediante programación, es una
poco más difícil de crear una tabla vista regulador, porque hay
hay un par de métodos que son necesaria para que usted, más o menos, anote
a cabo a fin de que la vista de tabla controlador para que se muestre correctamente.
>> Sin embargo, yo sólo quiero mostrar, ahora, un ejemplo de que, si me llevo esto,
por ejemplo -
Me he puesto en otro controlador de vista.
Y ahora, vamos a decir que quiero controlar alt mi primer azul
fila de la tabla a aquí.
Y quiero llamar a este azul.
Y entonces -
veamos.
Estoy en la vista ahora, y puedo cambiar el fondo en azul.
>> Y así, fíjense, aquí, este menú desplegable menú también le da una jerarquía de todos
de estos objetos.
Así que una cosa importante a tener en cuenta, aquí, es que todas estas cosas, aquí -
este controlador de vista de tabla, la tabla vista, vista de tabla Sección, vista de tabla
celular - todos estos son objetos, en el código.
Así que, ya sabes, una etiqueta en estos momentos se encuentra bajo la vista de contenido, etc.
Así sucesivamente y así sucesivamente.
>> Así que, si nos quedamos sin este código, debería ver algo -
vamos a ver si esto - si.
Así que, ahí vamos.
Pero, si no hacemos eso, ninguno de estas otras cosas les.
¿Cierto?
Así que sólo éste funciona.
Y, por el bien de momento, no lo haré entrar, usted sabe, poniendo
por los otros.
Y este es el fin de, más o menos, del guión gráfico -
lo que yo quería mostrar por storyboard.
>> Y, tengo un ejemplo resuelto, En realidad, aquí mismo.
Por lo tanto, este es el guión gráfico que he hecho anteriormente.
Así que, como puedes ver, esto fue mi controlador de navegación.
Luego tuve mi primer controlador de vista, Entonces tuve mi regulador vista de tabla,
y luego tuve todos estos -
por lo que antes, que estaba haciendo algo muy diferente.
Así, excusar esas cosas.
Probablemente voy a limpiarlo más tarde, antes Me lo enviaba a la producción.
>> Pero, si nos encontramos con esto, ya veremos que todas las opciones son
disponible para nosotros.
Excepto que yo no hice los fondos esos colores.
Así, la aplicación simple agradable.
>> Ahora, vamos a tratar de hacer frente a esta programación.
Aceptar.
Así que, para hacer eso, sólo vamos para iniciar un nuevo proyecto de Xcode.
Vamos a hacer que una aplicación vacía ahora, porque no quiere tener la
storyboard.
Así que, estoy simplemente restringiéndome no utilizar cualquiera de guión gráfico, y un
aplicación vacía no lo hará dame un guión gráfico.
Esto es sólo para prevenir a mí mismo de hacer trampa.
Vamos a ver.
Espere.
Did I -
Sí.
Aceptar.
>> Derecha.
Así pues, aquí, nos quedamos con nada más que código.
Así que, déjame pasar esta ventana un poco más.
Derecha.
Como se puede ver aquí, los únicos archivos que nos dan son AppDelegate.h y punto
m, y no tenemos storyboard más.
>> Así que si corremos esto, todavía vamos a llegar a la pantalla en blanco, gracias a Dios.
OK - pantalla en blanco, pero nada más.
Y, aquí está la parte importante.
Aquí es donde sucede la acción.
En las versiones anteriores, hay por lo general no hay código aquí, pero el
storyboard proporciona esencialmente el código para esta parte.
No voy a entrar en detalles sobre cómo hacerlo.
>> Y lo que queremos hacer ahora es, queremos ir aquí, y este pequeño espacio
se inicia la creación de nuestra aplicación de nuevo.
Por lo tanto -
sí?
>> AUDIENCIA: Zoom?
>> RHED SHI: Zoom.
Sí, claro.
Aceptar.
Voy a estar escribiendo, así que esto no debería importa demasiado.
Aceptar.
>> Así, en primer lugar, recuerde que nosotros queríamos crear un controlador de navegación, ¿verdad?
Y también, como se puede ver aquí, Xcode hace un gran trabajo de
auto-llenado.
Así que, como te fijas, los nombres de todo es mucho más que
habitual, pero Xcode llena adentro para usted.
Así que sólo puedo pulse Intro.
>> Por lo tanto, quiero crear una interfaz de usuario de navegación puntero del controlador, y puedo llamarlo
navigationController.
Ahora, ¿qué hago ahora?
Después de este signo igual, tengo que, primero, crear dentro de la memoria.
Por lo tanto, yo voy a hacer NavigationController alloc -
así, esto es similar a malloc, que ustedes utilizan en C -
y luego, voy a init ella.
>> Por lo tanto, es muy importante que cualquier objeto que se crea, que desea
alloc e init ella.
Eso va a crear y instantialize dentro de la memoria, y
ahora usted puede utilizarlo.
¿De acuerdo?
Si usted no hace eso, su objeto hace no existe, y se encontrará con un montón
de problemas.
>> Y entonces, quiero crear un controlador de vista, ¿no?
Por lo tanto, quiero crear una UIViewController star -
así, todo es un puntero en Objective-C, y yo voy a hacer
algo similar, aquí -
alloc, init.
Aceptar.
>> Y entonces lo que voy a hacer es, estoy ir a - así, recuerde cuando hicimos
la inserción en el controlador de navegación?
Esta es la forma de hacerlo en código.
Usted va a hacer navigationController
pushViewController -
>> AUDIENCIA: [inaudible].
¿Ocurrirá esto para nosotros, o -?
>> RHED SHI: Oh, sí.
No.
Me gusta más.
No, que va a trabajar para usted, también.
Por lo tanto, estos son todos los métodos.
Así pushViewController es un método, y También, más específicamente, es una
método de instancia de la interfaz de usuario controlador de navegación.
Debido a que tuve que crear mi navegación de interfaz de usuario estrella controlador, y luego me
puede llamar a este pushViewController en mi instancia específica de una navegación de interfaz de usuario
controlador.
>> AUDIENCIA: ¿Tenemos que hacer la exacta palabra, o es que ya existe para ello?
>> RHED SHI: Sí, porque es un método.
Es como una función.
Es como printf.
Es como scanf.
Es como strcompare.
Excepto que sabe lo que es posible que desee escribir, y darse cuenta de que siempre voy a
llegar a las cosas que son legalmente permitido para usted.
Así que, si no aparece nada aquí, entonces algo está mal.
>> Así, pushViewController.
Así que, ahora, quiero empujar mi recién creado
UIViewController y, a continuación, animada -
tal vez no.
Debido a que este va a ser el primer controlador de vista.
Quiero decir, incluso si yo hice animada, probablemente no se mostrará, porque
es la primera pantalla.
>> Y recuerda que los soportes.
Así, recordamos cómo se utilizaron los soportes?
Y dentro de los corchetes, el objeto hace un llamado a un método -
por lo que nuestro objetivo es el de navegación controlador, y el método es un impulso
controlador de vista animada.
Y ver cómo se toma en dos argumentos, y que están separados por el, más o menos,
palabras, y dos puntos.
Así, Objective-C intenta que sea agradable y fácil para que usted lea en voz alta -
su código - y tenerla semi, más o menos, tiene sentido.
>> Sin embargo, haciendo precisamente esto no es suficiente.
Permítanme Alejar ahora.
Si lo hace sólo esto no es suficiente para conseguimos lo que conseguimos con anterioridad.
Así que aquí, te darás cuenta de que hay en realidad no va a haber ningún tipo de
bar, aquí, ¿verdad?
No hay barra de navegación, lo que significa que todavía no hemos conseguido.
>> Y podemos probar eso, también, por, tal vez, cambiando el fondo de
ViewController, ¿verdad?
ViewController.background--
ah.
Por lo tanto, ver cómo ViewController no tenía un color de fondo, a pesar de que
querido acceder a él?
Y eso es porque ViewController es un contenedor para la vista.
Por lo tanto, tiene una propiedad de vista, que luego tiene un color de fondo.
>> Y, puedo configurarlo, una especie de tediosamente, llamando el color
en el objeto UIColor.
Así, el aviso aquí, redcolor es un método.
Es un método de clase de UIColor.
Porque yo no tenía que crear un ejemplo real de un UIColor con el fin
para llamar al método en él.
Yo solo, simplemente, llamé en el nombre de tipo similar.
Yo, como, llamado en int, int si tenía, como, un método a él, por ejemplo.
>> Y así, si nos quedamos sin este código, vamos a observe que el fondo es
en realidad, no rojo.
Todavía es blanco.
¿Y cómo podemos conseguir alrededor de esto es, Observe cómo está el self.window.
Es decir, al igual que, el envase final para su aplicación.
Es lo último que contiene todo en la pantalla, para una
iPhone o aplicación iPad.
>> Y, convenientemente, self.window tiene esta propiedad llamada
RootViewController.
Y eso va a ser el puntero a el primer controlador de vista en el interior
de su aplicación.
Por lo tanto, lo que queremos hacer aquí, ahora, es para establecer que igual a nuestra navegación
controlador.
¿Cierto?
Debido a que, técnicamente, la navegación controlador es nuestra primera vista
controlador.
Se realiza un seguimiento de una serie de otro punto de vista controladores, y empujamos esta
vista controlador en la matriz en el controlador de navegación.
>> Por lo tanto, usted no quiere hacer esto.
Eso en realidad no le ayudará.
¿Quieres hacer esto, si usted quería hacer un controlador de navegación, que más
de ustedes probablemente porque usted querrá que, más o menos, tener algún tipo de,
como, menú para volver a u página de inicio para volver a, en lugar de una
pantalla vacía.
¿Sí?
>> AUDIENCIA: ¿Es incómodo para hacer zoom en la -
>> RHED SHI: Si.
Así que, sí.
Este es el código, y ahora vamos a probarlo.
>> Así que, ahí vamos.
Magia.
Así, en Aceptar.
Gracias.
Aceptar.
Así que ahora, lo que queremos hacer es - por lo que, estamos un poco limitado, aquí, ¿verdad?
Potencialmente podríamos escribir todo dentro de este una función.
Pero, no es así como el desarrollo de iOS por lo general funciona.
>> Por lo tanto, lo que vamos a hacer es, estamos va a crear algunos archivos nuevos.
Pero, más concretamente, vamos a crear otra clase Objective-C, o
otro objeto -
clase y objetos son intercambiables aquí.
Y, así es como he podido, potencialmente, crear otra clase de controladores U.
>> Así que, es una sub-clase, como te darás cuenta, aquí, es una subclase de la
Controlador de vista de interfaz de usuario, pero no puedo llamarlo con otro nombre aquí.
Yo podría llamar a este CS50, que podría llamar Este controlador de vista, yo podría llamar
Este controlador de vista bla -
lo que quiera.
Esto es sólo el nombre de la clase.
Sin embargo, va a ser importante porque, en esencia, lo que estoy haciendo
aquí es, que estoy creando otro nombre de clase.
Por lo tanto, va a ser, como, algunos especie de tipo o un objeto.
Por lo tanto, debería ser un poco genérico.
No va a ser muy específico.
>> Y también, quiero señalar estas dos opciones.
Debido a que estamos haciendo todo dentro de código, a veces es mucho más fácil
traer a un archivo de interfaz, de manera que Yo, literalmente, puede arrastrar y soltar, como
lo hicimos antes con guión gráfico -
ya sabes, una etiqueta o un botón, o cualquier otra cosa.
Y así, xibs son archivos que le permiten hacer eso, y usted tiene que conectarlo
a este archivo de controlador de vista.
>> Por lo tanto, voy a deliberadamente No comprobar esto.
Por lo general, me gustaría comprobar esto, y si me sólo hice esto para el iPhone o el iPad, que
sería comprobar esto y simplemente tener uno para, ya sabes, el iPhone o el iPad.
Pero desde que estoy haciendo universales, voy para crear dos de los que más tarde.
Por lo tanto, voy a deliberadamente desmarque esta.
>> Esto también es muy importante.
Muchas veces, he tenido errores cuando esto no se verificó.
Y por eso, obviamente, este archivo no es, especie de, como, incluido o importada
dentro de esta carpeta de prueba.
Y así, mi código no tiene absolutamente ninguna idea de la existencia de este archivo, y
que causa mucho dolor y las horas de depuración.
Pero, basta con que se marca esta opción de modo que, ya sabes, el objetivo de este
archivo es para esta aplicación.
>> Aceptar.
Así que, ahora que hemos creado dos nuevos archivos.
Y estos archivos se ven bastante vacía.
Y, en realidad, también vamos a continuar en mediante la creación de los archivos xib.
Así que, con anterioridad, yo estaba en el Cocoa Touch desplegable.
Ahora, yo voy a entrar en el usuario Táctil de interfaz, y como se puede ver,
puede crear un guión gráfico.
>> Así que, incluso empecé con un vacío aplicación, todavía puedo utilizar un
storyboard.
Aunque, la cosa se complica en términos de la forma en la que desea conectarse
que a su código.
Por lo tanto, no voy a ir allí.
>> Pero, ¿qué queremos hacer ahora es crear una vista.
Y usted puede elegir para un iPhone o un iPad.
Y por lo general, para denotar la diferencia - si usted está haciendo un
aplicación universal -
que o bien poner un iPhone subrayado, o se puede hacer un Twiddly.
En realidad no importa.
Se trata simplemente de que usted distinga que vista es para qué dispositivo.
>> Y así, ahora mira.
Tengo una pantalla de que puedo trabajar.
Y así, por ejemplo, puedo poner una etiqueta aquí, ya sabes, y yo también poner
otro botón aquí.
No me molestaré en cambiar los valores aquí.
>> Pero, lo que es importante aquí es que el propietario del archivo -
así, estoy dentro del iPhone vista, archivo iPhone xib.
Y en esta área de navegación o menú desplegable, yo quiero ir a la
el propietario del archivo.
Y esta es la realidad importante paso aquí.
Quiero hacer la vista de clase controlador, por lo que este archivo es xib
va a estar asociado con mi controlador de vista.
Y todo lo que hago dentro de mi punto de vista controlador de programación es
va a ser reflejada aquí.
>> Así que, sin embargo, notar que -
En realidad, vamos a hacer esta visión azul de fondo, por ejemplo.
O verde.
Y entonces, así que si te fijas, de nuevo en este código, aquí es donde llegamos a nuestra
controlador de navegación.
>> A pesar de que hicimos ese paso, es todavía va a ser de color rojo, no verde.
Y hay una razón por qué.
Se debe a que, cuando nos inited nuestro controlador de vista, aquí -
lo siento, es un poco loco -
cuando inited nuestro controlador de vista aquí, nos inited que del tipo general
UIViewController.
¿De acuerdo?
Así que ni siquiera nos hacemos con esta clase.
>> Así que recuerde, esto es como una clase ahora.
Se puede considerar como un tipo, sólo como UIViewController es un tipo.
Y con el fin de utilizar eso, ¿qué que tenemos que hacer es importarlo -
ViewController importación -
y, como se puede ver, AutoFills por mí.
Así, ViewController -
y ahora, he aquí, que puedo cambiar esta UIViewController a ViewController.
Y ahora, aquí, puedo cambiar esto a ViewController.
>> Vamos a correr de nuevo.
Todavía está rojo.
Y la razón por la que es sigue en rojo es porque -
woah, ¿qué pasó allí?
Queríamos asociar este xib presentar ante el controlador de vista.
Sin embargo, con el fin de hacer realidad que, tenemos que entrar en esto.
Y cuando lo hacemos los valores init, que queremos hacer initWithNibName, y luego queremos
hacer lo en cadena View_iPhone, por ejemplo.
Puede pasar por alto el paquete aquí.
>> Y esto va a permitir nosotros, en realidad -
uh oh, hay un problema.
Derecha.
>> Y así, no es un problema porque, en nuestro archivo de vista xib, tenemos una etiqueta y
tenemos un botón.
Sin embargo, a pesar de que nos hemos conectado esos dos, no hay nada en el interior de
ViewController.h o ViewController.m que reflejan las
botones o esas etiquetas.
Por lo tanto, tenemos que escribir aquellos en que propiedades del controlador de vista.
>> Así, así es como se declara una propiedad.
Se necesita en, por lo general, estas dos opciones.
A los efectos de nosotros y este seminario, Yo diría que, en general,
la mayoría de las propiedades son no atómica y retener.
Usted puede leer por Google buscar, usted sabe, la diferencia entre
no atómica y retener en adelante, saber, Google o algo así.
Y yo te llevaré a, como, Pila Desbordamiento, donde las personas tendrán
respuestas para las diferencias entre aquellos.
Pero por ahora, eso es lo que quieren preocuparse por.
>> Y queremos hacer una etiqueta de interfaz de usuario, estrella, y podemos decir que es lo que queremos.
Podemos llamar a esto, ya sabes, etiqueta.
Y, vamos a crear otra uno para el botón.
Y recuerde incluir el asterisco, porque se trata de punteros
prácticamente en todas partes en el interior de Objective-C.
>> Sin embargo, eso todavía no resuelve el problema, como se puede ver aquí.
Y la razón se debe a que, cada vez que desee conectar una etiqueta xib o un
botón para el programa, o el encabezado y el archivo de la aplicación, queremos
añadir esta pieza de código -
de salida.
Tenga en cuenta que se trata de una palabra clave.
>> Y, tan pronto como termine de escribir eso, debe tener estos
dos círculos, aquí.
Por lo general, no están llenos pulg
No estoy seguro de por qué son.
Pero por lo general, usted tendrá que manualmente conectarlos por ir a este lado del
el área de servicios públicos.
>> Y así, en este momento, tengo mi sello seleccionado, y quiero arrastrar este nuevo
referencia de salida al propietario de mi archivo, y luego haga clic en Etiqueta.
Así que ahora, por fin, esta etiqueta es conectado a esta etiqueta.
Y esta etiqueta es lo que vamos a utilizar mediante programación para cambiar su
texto, su fuente, su fondo de color, etc.
>> Así que, ¿por qué no hacemos lo mismo para el botón?
Y como te darás cuenta, para el botón, que es un poco más complicado.
Porque, es decir, se supone que pulse en un botón, por lo que tiene mucho
de opciones para los usuarios puede pulsar en un botón.
Y luego, ya veremos más adelante que podemos conectar esto a nuestro
código para hacer que funcione.
>> Así que, por ahora, sin embargo, queremos conectar al botón real
dentro de nuestro código.
Así que vamos a la nueva toma de referencia, a continuación, realice el botón.
Ahora, vamos a correr de nuevo.
Uh oh.
Aceptar.
No sé lo que está pasando aquí ahora.
Whoa.
Sólo un momento, aquí.
>> En realidad, ¿por qué no nos tomamos un ver otro ejemplo en
por razones de tiempo.
Aceptar.
Así pues, aquí está el preparado más fácilmente ejemplo para ViewController.
Como se puede ver aquí, he incluido las propiedades de la
etiqueta y el botón.
Y entonces, esta pieza de código aquí -
este IBAction -
era una conexión con este botón de aquí.
Así como se puede ver aquí, Touch Up Inside está conectado al selector
llamado botón pulsado.
>> Por lo tanto, podemos ir realmente a través de la movimiento de nuevo, aquí, tomando Touch Up
Dentro y arrastrándolo a Propietario del archivo y, a continuación,
haga clic en el botón presionado.
Ahora, vamos a ejecutar nuestro código.
Así que ahora, este botón funciona ahora y nos llevará a la siguiente página.
>> Y, en términos de nuestro controlador de vista, esta es la parte del código que se llevó a
cuidar del botón presionado.
Y es importante señalar aquí, que He creado otro tipo de vista
controlador llama tabla controlador de vista.
Por lo tanto, esto era similar a una copia en storyboard, cuando me arrastré uno de
estos controladores de vista tabla en el guión gráfico.
Estoy creando otro
>> Puntero al controlador de vista de tabla, alloc y init-cuencia de ello, y luego hacer
controlador de navegación auto del punto, empujar ViewController, esta nueva
viewController.
Y me he puesto la animación para sí, porque ahora dentro de mi aplicación, y
quieren ver realmente la animación va desde la página principal a la tabla
controlador de vista.
>> AUDIENCIA: ¿Todavía te preocupes sobre la recogida de basura?
>> RHED SHI: ¿Qué es eso?
No.
Entonces, la pregunta era, ¿tiene para trabajar con la recolección de basura?
Así, Xcode 4 tuvo como ARC, que es el recuento de referencias automático.
Y así, por lo general cuando se inicia un nuevo proyecto, deberá comprobar que, debido a
en realidad nadie quiere tratar con liberación de memoria y otras cosas.
Pero creo que en Xcode 5, no hay ni siquiera esa opción en el nuevo proyecto.
Por lo tanto, de forma automática lo hace por usted.
¿Sí?
>> AUDIENCIA: ¿Se puede exportar un PDF en el guión gráfico?
>> RHED SHI: Sí, definitivamente.
Por lo tanto, todos estos serán incluidos en código fuente, así que ustedes pueden revisar
el proyecto Xcode real de ella.
¿Sí?
>> AUDIENCIA: Pero, quiero decir, como, ¿puedo imprimir un PDF con mi storyboard?
Si yo sólo quiero exportar el imágenes que muestran a alguien.
>> RHED SHI: Ah, sí.
Creo que, tal vez, sólo puede tomar una captura de pantalla.
Sí, y les enviaremos una pantalla tiro o algo.
Sí.
>> Por lo tanto, vamos a ver.
En aras del tiempo, creo que eso es todo lo que puedo cubrir hoy.
Pero, yo sé que eso es, en realidad, sólo apenas tocando la superficie de iOS
desarrollo.
Por lo tanto, por favor no dude en ponerse en contacto conmigo si usted tiene alguna pregunta acerca de iOS
desarrollo.
Y, con suerte, voy a ser capaz de limpiar hasta una parte del código de la fuente
archivos de código, de modo que usted tendrá algún muy bonitos ejemplos para trabajar.
>> Aparte de eso, si ustedes van a la CS50 Hackathon, me puede o
no estar allí, y puedo echar una mano con un poco de desarrollo de iOS, también.
Así que, muchas gracias, chicos.