pdfsharp asp.net mvc example : Asp.net pdf to image SDK control project winforms azure wpf UWP iPhoneInAction24-part1718

216
C
HAPTER
12 
Using Interface Builder
When you mouse over to the correct top-level object, you should release the mouse 
button. A menu will pop up that lists all the available 
IBOutlet
s in that file. When you 
do this, you’ll see the 
myWebView
IBOutlet
that you just built, plus a 
viewController
which you don’t need to use. Select the appropriate outlet, click the mouse, and your 
object and your 
IBOutlet
are connected.
At this point, you’re done building a bridge between Interface Builder and Xcode. 
If you look at the Connections tab of the app delegate proxy, you’ll see that it now acts 
as a referencing outlet for the web view. 
If you want to look at both Connections 
tabs at the same time, you can do so by Ctrl-
clicking each of the two objects to bring up 
stand-alone Connections panels, as shown in 
figure 12.9.
Through these Connections panels, you 
can see not only the reciprocal web view con-
nection that you just built, but also the app 
delegate’s existing connections: it acts as a 
delegate for the application (which is the .xib 
file’s owner), and it acts as an outlet (which 
you already used) for a window.
Now, all you need to do is fall back on 
your existing Xcoding skills to make the web 
view do what you want.
12.3.3 Coding with IBOutlets
Heading back into Xcode, you only need to input a single line of new code to get the 
web view working, as shown in listing 12.2.
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[myWebView loadRequest:[NSURLRequest requestWithURL:
[NSURL URLWithString:
@"http://quote-web.aol.com/?syms=AAPL&w=280&h=391..."]]];
// Full, dynamic URL not included, for readability
// Put a 280x391 sized page of your choice into the message
[window makeKeyAndVisible];
}
Note that you don’t have to allocate the web view, nor do you have to initialize it, nor 
do you have to add it as a subview of your window; all those details are taken care of by 
Interface Builder. But once you link to the object via an outlet, you can access it like 
any object you created yourself.
Listing 12.2 IBOutlet to access the object’s usual properties
Figure 12.9 You can Ctrl-click to access 
Connections panels if you want to see 
multiple connections at the same time.
Licensed to Nick Wood <nwood888@yahoo.com>
Best pdf to jpg converter online - Convert PDF to JPEG images in C#.net, ASP.NET MVC, WinForms, WPF project
How to convert PDF to JPEG using C#.NET PDF to JPEG conversion / converter library control SDK
change pdf into jpg; batch convert pdf to jpg online
Best pdf to jpg converter online - VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.net, ASP.NET MVC, WinForms, WPF project
Online Tutorial for PDF to JPEG (JPG) Conversion in VB.NET Image Application
convert pdf pages to jpg online; best pdf to jpg converter for
217
Other Interface Builder functionality
As we promised earlier, we’ll take a more com-
plete look at how web views work in chapter 20. But 
we wanted to include them here to demonstrate 
(again) how easy it is to incorporate an unfamiliar 
object into your code using Interface Builder. 
In addition, a web view provides a nice example of 
client-server integration between web design and the 
SDK
—a topic that we first touched on in chapter 2 and 
that turns out to be pretty simple to attain using the 
iPhone 
OS
. By linking to a 
URL
that sends dynamic 
content to your iPhone, you can make a sophisticated, 
always up-to-date program despite only designing the 
display engine on the 
SDK
side of things.
Figure 12.10 shows what the final product looks 
like.
That brings us to the end of our Apple stock exam-
ple. It presented some fundamental uses of Interface 
Builder that you’ll encounter again and again. In par-
ticular, creating objects in Interface Builder and then 
hooking them up to Xcode will likely become a regu-
lar part of your 
SDK
coding experience, so you should 
make sure you’re entirely familiar with that process.
Before we leave this Interface Builder introduc-
tion, we’ll touch on some additional functionality that 
will become more important in the chapters to come. 
12.4 Other Interface Builder functionality
When we finished our look at Xcode in chapter 11, we had a few slightly more advanced 
topics that we wanted to talk about: foundational stuff that nonetheless lay beyond the 
bounds of our first simple program. The same is true with Interface Builder.
12.4.1 Building other connections
As we’ve noted, 
IBOutlet
s are only one of a few major types of connections that you 
can build into Interface Builder. You’ve also seen delegate connections, which allow 
you to tie one object to another for purposes of delegation. You do this without ever 
setting the 
delegate
property in Xcode: you link the one object to the other in Inter-
face Builder.
The third major type of connection is the 
IBAction
, which creates a connection 
that causes a method in your class file to be run whenever an action is sent to a 
UIControl
. Building 
IBAction
connections is almost exactly like building 
IBOutlet
connections: you create a method declaration in the appropriate header file that 
uses 
IBAction
as its return, and then you connect it to an appropriate action in 
Figure 12.10 An image, a label, 
and a dynamic web view are put 
together in Interface Builder with 
only a single line of Xcode required 
(plus a couple of declarations).
Licensed to Nick Wood <nwood888@yahoo.com>
Online Convert PDF to Jpeg images. Best free online PDF JPEG
Online PDF to JPEG Converter. Download Free Trial. Convert a PDF File to JPG. Drag and drop your PDF in the box above and we'll convert the files for you.
c# convert pdf to jpg; convert pdf to jpg batch
Online Convert Jpeg to PDF file. Best free online export Jpg image
Online JPEG to PDF Converter. Download Free Trial. Convert a JPG to PDF. You can drag and drop your JPG file in the box, and then start
advanced pdf to jpg converter; batch convert pdf to jpg
218
C
HAPTER
12 
Using Interface Builder
Interface Builder; each object comes with all of the potential actions built in. Finally, 
in Xcode, you write the method that specifies what happens when the control 
is modified.
We’ll get into this in more depth in chapter 14.
12.4.2 Creating external objects
In the last chapter, you built your first subclass: the 
labeledwebview
class. You’ll be 
building lots more subclasses in your 
SDK
work, and you’ll often want to connect them 
into Interface Builder so you can connect outlets and actions to them. How do you 
access these new classes in Interface Builder when they don’t appear in the Library 
window? It turns out that you need to use the Identity tab, which you’ve already met 
(in figure 12.6).
Table 12.2 outlines the two-step process.
We say that you start the process with an “appropriate object.” For a totally new object, 
this will probably be the blank object, but if you’re making a subclass of an existing 
object, you should start with the object you’re subclassing from.
Once you type your new subclass name into your object’s Class field, things will 
automatically be linked up. You’ll use this technique in future chapters.
12.4.3 Initializing Interface Builder objects
Eventually, you’ll realize that you want to do some initialization when an Interface 
Builder object is created. But if you try to build your setup into a standard 
init
method, it won’t work. As we’ve mentioned, Interface Builder objects use a special 
init
method called 
initWithCoder:
. You must create it by hand, as in listing 12.3.
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super initWithCoder:decoder]) {    
// Setup code goes here
}
return self;
}
Other than its decoder argument (which you should be able to ignore), it should 
work like any other 
init
method.
Table 12.2 Creating a new proxy object to link to in Interface Builder takes a couple of steps.
Step
Description
1. Create a new object.
From the Controllers section of the Library, drag an appropriate object to the 
nib document window.
2. Change the class.
Open the Identity inspector tab, and change the class name to your new class.
Listing 12.3 initWithCoder: is required to initialize Interface Builder objects
Licensed to Nick Wood <nwood888@yahoo.com>
C# WPF PDF Viewer SDK to convert and export PDF document to other
Best PDF Viewer control as well as a powerful .NET WinForms application to image file formats with high quality, support converting PDF to PNG, JPG, BMP and
conversion of pdf to jpg; convert pdf to gif or jpg
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Best PDF converter SDK for Visual Studio .NET for converting PDF to image in C#.NET Support exporting PDF to multiple image forms, including Jpg, Png, Bmp
convert pdf file to jpg format; convert pdf photo to jpg
219
Other Interface Builder functionality
12.4.4 Accessing .xib files
Finally, we come to the .xib file. We’ve taken it pretty much for granted so far, but 
there are ways in which you can specify a different .xib file than MainWindow.xib, and 
even ways in which you can specify the use of multiple .xib files.
THE MAIN FILE
The main .xib file is defined in Info.plist, which you’ve seen is an 
XML
file. You can 
look at its contents in Xcode, or you can read the 
XML
from the command line. It’s 
easy to find where the main .xib file (or rather, its compiled .nib twin) is defined:
<key>NSMainNibFile</key>
<string>MainWindow</string>
If you want to change the name of your main .xib file, do it here, using either Xcode 
or a command-line editor, but you shouldn’t need to.
MULTIPLE FILES
As we’ve mentioned, an .xib file can only lay out the contents of a single program 
screen. Although this has been fine for our programs so far, it becomes a limitation 
when you want to create more-complex programs. Fortunately, it’s easy to build multi-
ple .xib files into a single program.
New .xib files are usually loaded through view controllers, which will be the topic 
of the next chapter. As we’ve discussed previously, a view controller tends to control a 
page full of objects, and it makes sense that they use .xib files to help manage that. To 
use a new .xib file for a new page in your program, all you need to do is associate the 
new .xib file with the appropriate view controller.
The easiest way to do that is through Interface Builder—provided that’s where 
your view controller was created. A view controller’s Attributes tab includes a space for 
you to enter an .xib filename.
Alternatively, if you want to create a view controller in Xcode, you can link in a new 
.xib file through its 
init
method:
FlipsideViewController *viewController = 
[[FlipsideViewController alloc] 
initWithNibName:@"FlipsideView" bundle:nil];
If you’re a little fuzzy on the concept of view controllers, don’t worry, because we’re 
about to dive into the topic wholeheartedly. For now, note this connection between 
view controllers and Interface Builder.
12.4.5 Creating new .xib files
Now that you understand how to load additional .xib files, you may wish to create new 
ones. You do so from within Interface Builder, where you can choose File > New to 
begin. Afterward, you’ll be asked to choose a template: Application, Empty, View, or 
Window. You’ll most often create new .xib files for view controllers, in which case you 
should select View. 
To make your new .xib file part of your existing project, save the .xib file to the 
main project directory. You’ll be asked if you want to add it to the project; answer Yes. 
Licensed to Nick Wood <nwood888@yahoo.com>
VB.NET PDF - Convert PDF with VB.NET WPF PDF Viewer
Best WPF PDF Viewer control as well as a powerful PDF converter. PDF to image file formats with high quality, support converting PDF to PNG, JPG, BMP and GIF.
convert pdf to jpg; .net pdf to jpg
VB.NET Create PDF from images Library to convert Jpeg, png images
Best and professional image to PDF converter SDK for Visual Studio .NET. Support create PDF from multiple image formats in VB.NET, including Jpg, Png, Bmp
convert multiple pdf to jpg online; pdf to jpg converter
220
C
HAPTER
12 
Using Interface Builder
12.5 Summary
In the previous chapter, we showed you how to create some simple programs using 
Xcode alone. But Xcode is only half of the development environment that Apple pro-
vides. You also have access to Interface Builder, a powerful graphic design program 
that allows you to lay out objects by mousing and then to link those objects back to 
Xcode for use there.
The example in this chapter, which combines text, graphics, and web content, is 
both more complex than anything you wrote by hand in the previous chapter and a 
lot easier to put together. That’s the power of Interface Builder, and it’s something 
you’ll take full advantage of as you make your way through the 
SDK
over the course of 
this book.
Although you now have the two fundamental tools of the 
SDK
well in hand, we’ve 
neglected two of the 
SDK
building blocks you’ll use to create projects: view controllers 
and events. In the next three chapters, we’ll cover those topics, and in the process, 
we’ll complete our look at the iPhone OS classes you’ll use in almost any 
SDK
program 
you write. 
Licensed to Nick Wood <nwood888@yahoo.com>
C# Create PDF from images Library to convert Jpeg, png images to
Best and professional C# image to PDF converter SDK for Visual Studio .NET. Batch convert PDF documents from multiple image formats, including Jpg, Png, Bmp, Gif
convert pdf file to jpg; convert multipage pdf to jpg
VB.NET PDF Convert to Images SDK: Convert PDF to png, gif images
Best adobe PDF to image converter SDK for Visual Studio .NET. Convert PDF documents to multiple image formats, including Jpg, Png, Bmp, Gif, Tiff, Bitmap
change pdf to jpg file; convert pdf pictures to jpg
221
Creating basic 
view controllers
In the last two chapters, we’ve offered a hands-on look at the two core tools used to 
program using the 
SDK
: Xcode and Interface Builder. In the process, we haven’t 
strayed far from the most fundamental building block of the 
SDK
, the view, whether 
it be a 
UILabel
, a 
UIWebView
, or a 
UIImageView
.
Ultimately, the view is only part of the story. As we mentioned when we looked at 
the iPhone OS, views are usually connected to view controllers, which manage 
events and otherwise take the controller role in the 
MVC
model. We’re now ready 
to begin a three-part exploration of what that all means.
In this chapter, we’re going to look at basic view controllers that manage a sin-
gle page of text. With that basis, we can look at events and actions in chapter 14, 
correctly integrating them into the 
MVC
model. Finally, in chapter 15, we’re going 
This chapter covers
Understanding the importance of controllers
Programming bare view controllers
Utilizing table view controllers
Licensed to Nick Wood <nwood888@yahoo.com>
222
C
HAPTER
13 
Creating basic view controllers
to return to the topic of view controllers to look at advanced classes that can be used 
to connect up several pages of text.
Over the course of our two view controller chapters (13 and 15), we’re going to 
offer code samples that are a bit more skeletal than usual. That’s because we want to 
provide you with the fundamental, reusable code that you’ll need to use the control-
lers on your own. So, consider chapters 13 and 15 more of a reference—though a crit-
ical one. We’ll be making real-world use of the controllers in the rest of this book, 
including when we look at events and actions in chapter 14.
13.1 The view controller family
When we first talked about view controllers in chapter 10, we mentioned that they 
come in several flavors. These run from the bare bones 
UIViewController
, which is 
primarily useful for managing autorotation and for taking the appropriate role in the 
MVC
model, to the more organized 
UITableViewController
, on to a few different 
controllers that allow navigation across multiple pages.
All of these view controllers—and their related views—are listed in table 13.1.
Table 13.1 There are a variety of view controllers, giving you considerable control over how navigation occurs in 
your program 
Object
Type
Summary
UIViewController
View controller r A default controller, which controls a view; 
also the basis for the flipside controller, 
which appears only as an Xcode template, 
not as a UIKit object.
UIView
View
Either your full screen or some part thereof. 
This is what a view controller controls, typi-
cally through some child of UIView, not 
this object itself.
UITableViewController
View controller
A controller that uses UITableView to 
organize data listings.
UITableView
View
A view that works with the 
UITableViewController to create a 
table UI. It contains UITableCells.
UITabBarController
View controller r A controller that works with a UITabBar to 
control multiple UIViewControllers.
UITabBar
View
A view that works with the 
UITabBarController to create the tab 
bar UI. It contains UITabBarItems.
UINavigationController
View controller r A controller used with a 
UINavigationBar to control multiple 
UIViewControllers.
Licensed to Nick Wood <nwood888@yahoo.com>
223
The bare view controller
As we’ve already noted, we’ll be discussing these view controllers in two different 
chapters. Here we’re going to look at the single-page view controllers: 
UIViewCon-
troller
and 
UITableViewController
. In chapter 15, we’re going to look at the multi-
page view controllers: 
UITabBarController
UINavigationController
, and the 
flipside controller. This is a clear functional split: the single-page controllers exist pri-
marily to support the controller role of the 
MVC
model, whereas the multipage con-
trollers exist primarily to support navigation, and may even delegate 
MVC
work to a 
simpler view controller lying below them. (As for the modal controllers, we’ll get to 
them when we cover the appropriate topics in chapters 16 and 18.)
Though we’ve programmed without view controllers to date, they’re an important 
part of 
SDK
programming. You could write an 
SDK
program without them, but every 
SDK
program should include them, even if you use a bare-bones view controller to 
manage the rotation of the iPhone screen.
13.2 The bare view controller
The plain view controller is simple to embed inside your program. By why would you 
want to use a view controller? That’s going to be one of the topics that we’re going to 
cover here. Over the course of this section, we’ll look at 
how view controllers fit into the view hierarchy, how you 
create them, how you expand them, and how you make 
active use of them. Let’s get started with the most basic 
anatomical look at the view controller.
13.2.1 The anatomy of a view controller
A view controller is a 
UIViewController
object that sits 
immediately above a view (of any sort). It, in turn, sits 
below some other object as part of the tree that ulti-
mately goes back to an application’s main window. 
This is shown in figure 13.1.
UINavigationBar
View
A view that works with UINavigation- 
Controller to create the navigation UI.
Flipside controller
View controller r A special template that supports a two-
sided UIViewController.
ABPeoplePickerNavigationController 
ABNewPersonViewController 
ABPersonViewController 
ABUnknownPersonViewController 
UIImagePickerController
View controller r Modal view controllers that allow interaction 
with sophisticated user interfaces for the 
Address Book and the iPhone photos roll.
Table 13.1 There are a variety of view controllers, giving you considerable control over how navigation occurs in 
your program (continued)
Object
Type
Summary
UIViewController
Window
or superview
View
Figure 13.1 A bare view 
controller shows view-controlling 
at its simplest: it sits below one 
object and above another.
Licensed to Nick Wood <nwood888@yahoo.com>
224
C
HAPTER
13 
Creating basic view controllers
When we move on to advanced view controllers, in chapter 15, we’ll see that the use of 
a bare view controller can grow more complex. Bare view controllers will often sit 
beneath advanced view controllers, to take care of the individual pages that the 
advanced view controller allows navigation among.
Looking at the iPhone 
OS
’s class hierarchy, we can see that the 
UIViewController
is a direct descendent of 
NSObject
. That means that it doesn’t get any of the function-
ality of 
UIResponder
or 
UIView
, which you find in most other 
UIKit
objects. It’s also 
the parent object of all the other view controllers we’ll be discussing. Practically, this 
means that the lessons learned here also apply to all the other controllers.
But learning about how a view controller works leaves out one vital component: 
how do you create it?
13.2.2 Creating a view controller
The easiest way to incorporate a plain view controller into your project is to select a 
different template when you create it. The View-Based Application template should 
probably be your default template for programming from here on out, because it 
comes with a view controller built in.
As usual, the template’s work is primarily done through Interface Builder. Once 
you create a new project (which we’ve called “viewex” for the purpose of this exam-
ple) you can verify this by looking up the view controller’s 
IBOutlet
command in the 
program’s app delegate header file:
IBOutlet viewexViewController *viewController;
The app delegate’s source code file further shows us that the view controller’s view has 
already been hooked up to the main window:
[window addSubview:viewController.view];
This view is a standard 
UIView
that’s created as part of the template. Though a view 
controller only has one view, that view may have a variety of subviews, spreading out 
into a hierarchy. We’re going to show you how to add a single object beneath the view 
in a moment, and we’re going to make more complete use of it in the next chapter. 
But before we get there, we want to step back and look at how you could create a view 
controller by hand, if you needed to.
Creating another view controller is simple. First, in Interface Builder, drag a View 
Controller from the Library to your xib document window. Alternatively, in Xcode, 
you can 
alloc
and 
init
an object from the 
UIViewController
class. 
NOTE
Increasingly, we’re going to assume that you’re doing work through 
Interface Builder and using appropriate templates, but the same meth-
ods for object creation that we learned in the last couple of chapters 
remain available for all objects.
Second, note that the previous 
IBOutlet
command shows that the controller isn’t 
instantiated directly from the 
UIViewController
class, but rather from its own subclass, 
Licensed to Nick Wood <nwood888@yahoo.com>
225
The bare view controller
which has its own set of files (
viewexViewController.{h|m}
), named after our exam-
ple project’s name. This is standard operating procedure.
Because we want a view controller to do event management, we’ll often need to 
modify some of the controller’s standard event methods, so we require our own sub-
class. To start, our view controller class files are mostly blank, but Xcode helpfully high-
lights a number of standard view controller methods that we might want to modify.
Once you’ve finished creating a bare view controller, you’re mostly ready to go, but 
there’s some slight opportunity to modify the view controller for your specific pro-
gram, and that’s what we’re going to cover next.
13.2.3 Building up a view controller interface
In order to correctly use a view controller, you need to build your view objects as sub-
views of the view controller, rather than subviews of your main window or whatever 
else lies above it. This is easy in both Xcode and Interface Builder.
THE XCODE SOLUTION
The view controller class file gives you access to a pair of methods that can be used to 
set up your view controller’s views. If the view controller’s view is linked to an .xib file, 
you should use 
viewDidLoad
, which will do additional work after the .xib is done loading; 
if it isn’t created from inside Interface Builder (
IB
), you should instead use 
loadView
.
Before you do any of this, your view controller will always start off with a standard 
UIView
as its one subview. But by using these methods, you can instead create view con-
troller’s view as you see fit, even creating a whole hierarchy of subviews if you so desire.
Listing 13.1 shows how you could add a simple 
UILabel
to your view controller 
using 
viewDidLoad
. We’ve chosen a humongous font that gets automatically sized 
down so that later we can show off how rotation and resizing work.
- (void)viewDidLoad {
[super viewDidLoad];
UILabel *myLabel = [[UILabel alloc]
initWithFrame:[[UIScreen mainScreen] bounds]];
myLabel.adjustsFontSizeToFitWidth = YES;
myLabel.font = [UIFont fontWithName:@"Arial" size:60];
myLabel.textAlignment = UITextAlignmentCenter;
myLabel.text = @"View Controllers!";
myLabel.backgroundColor = [UIColor grayColor];
[self.view addSubview:myLabel];  
[myLabel release];
}
The 
self.view
line is the only one of particular note 
B
. It connects your label object 
as a subview of the view controller’s 
UIView
.
This example is also noteworthy because it’s the first time you’ve definitively 
moved outside of your app delegate for object creation. You could have done this 
Listing 13.1 You can add views to an IB-created view controller inside viewDidLoad
B
Licensed to Nick Wood <nwood888@yahoo.com>
Documents you may be interested
Documents you may be interested