`
jsntghf
  • 浏览: 2527576 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

公共视图的实现

    博客分类:
  • iOS
阅读更多

 

如上图所示,页面分为两个部分:上半部分是一个UIDatePicker,下半部分是一个UITableView。这两部分可以同时放在同一个XIB里,但是,如果UITableView是一个公共视图的话,也就是说,其他页面也会显示这个UITableView,而且列表内容相同,那么,这样做的话,就得在每个需要显示该表视图的XIB中都加上UITableView以及相应的实现,这样就造成了冗余。

 

我们可以将这个表视图单独出来,作为公共的部分,在需要显示的地方加载进来即可。

 

下面看一个简单的示例。

 

新建一个Test项目,TestAppDelegate.h内容如下:

 

#import <UIKit/UIKit.h>

@class TestViewController;

@interface TestAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    TestViewController *viewController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet TestViewController *viewController;

@end

 
 TestAppDelegate.m内容如下:

 

#import "TestAppDelegate.h"
#import "TestViewController.h"

@implementation TestAppDelegate

@synthesize window;
@synthesize viewController;

#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
	
    return YES;
}

#pragma mark -
#pragma mark Memory management

- (void)dealloc {
    [viewController release];
    [window release];
    [super dealloc];
}

@end

 

TestViewController.xib中是一个UIDatePicker,TestViewController.h内容如下:

 

#import <UIKit/UIKit.h>
#import "tableViewController.h"

@interface TestViewController : UIViewController {
	tableViewController *tblController;
}

@end

 

TestViewController.m内容如下:

 

#import "TestViewController.h"
#import "tableViewController.h"

@implementation TestViewController

- (void)viewDidLoad {
    [super viewDidLoad];
	tblController = [[tableViewController alloc] init];
	CGRect rect = CGRectMake(0, 220.f, 320.f, 230.f);
	tblController.view.frame = rect;
	[self.view addSubview:tblController.view];
}

- (void)dealloc {
	[tblController release];
    [super dealloc];
}

@end

 

tableViewController.xib中是一个UITableView,tableViewController.h内容如下:

 

#import <UIKit/UIKit.h>

@interface tableViewController : UITableViewController {
	
}

@property(nonatomic, retain) NSArray *ary;

@end

 

tableViewController.m内容如下:

 

#import "tableViewController.h"

@implementation tableViewController
@synthesize ary;

#pragma mark -
#pragma mark View lifecycle

- (void)viewDidLoad {
    [super viewDidLoad];
	NSArray *array = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", @"10", nil];
	self.ary = array;
	[array release];
}

#pragma mark -
#pragma mark Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [self.ary count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    static NSString *CellIdentifier = @"Cell";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    
    cell.textLabel.text = [self.ary objectAtIndex:[indexPath row]];
    
    return cell;
}


#pragma mark -
#pragma mark Memory management

- (void)dealloc {
	[ary release];
    [super dealloc];
}

@end
 
  • 大小: 31.4 KB
分享到:
评论

相关推荐

    公共安全行业视图数据中心建设思路.rar

    通过建设视图数据中心,可以实现数据的集中管理,提高信息处理速度,为快速响应和解决公共安全问题提供基础。 二、数据整合与共享 视图数据中心的核心任务之一是整合来自不同部门、不同系统的数据。这需要建立统一...

    Visual C++ 6.0中实现三叉切分窗口与多视图C++源代码程序小实例

    视图之间可以通过发送自定义消息或者共享一个公共的数据模型来交换信息。此外,为了使用户能够动态调整窗口大小,还需要处理WM_SIZE消息,以便在窗口大小改变时调整子窗口的位置和大小。 在实际编程中,还需要注意...

    连接其他oracle数据库信息创建本地视图

    这可以通过创建数据库链接(Database Links)实现,标题“连接其他Oracle数据库信息创建本地视图”正是围绕这一主题展开。数据库链接允许我们在一个Oracle实例中创建对另一个Oracle实例的逻辑连接,从而能够查询远程...

    vue实现年日历视图及休息日工作日设置功能

    在本文中,我们将深入探讨如何使用Vue.js框架来实现一个年日历视图,并集成休息日和工作日的设置功能。Vue.js是一个流行的轻量级前端框架,它提供了丰富的功能和组件系统,使得构建交互式用户界面变得简单高效。...

    使用dll中的文档视图类

    2. **定义接口**:为了使主应用程序能够调用DLL中的函数,需要在DLL中定义公共接口,这些接口通常是一系列导出函数,用于创建、打开、关闭文档和视图等操作。 3. **实现文档视图类**:在`SdiDllFramesDoc.cpp`和`...

    基于visual c++单文档多视图程序设计方法

    每个视图模板都继承自一个公共的视图基类,如MFC中的CView,而文档模板则继承自CDocument。开发者可以定制视图类来显示不同的信息或以不同的方式操作数据,比如同时提供文本视图和图形视图来显示同一数据集。 单...

    构建插件式的应用程序框架(八)-视图服务的简单实现

    在本篇中,我们将深入探讨如何构建一个插件式的应用程序框架,特别关注视图服务的简单实现。在软件开发中,插件式架构允许我们创建可扩展、灵活且易于维护的应用程序。视图服务作为用户界面的核心部分,是将业务逻辑...

    C# Winform DataGridView 公共分页实现

    本篇文章将深入探讨如何在C# WinForm应用中实现一个公共的分页功能,以优化大量数据的显示,提高用户体验。 `DataGridView`控件是WinForms中的数据网格视图,它允许开发者以表格的形式展示数据。在处理大量数据时,...

    弹出视图源代码

    6. **显示与隐藏**:提供一个公共方法来控制弹出视图的显示和隐藏,如`show()`和`hide()`。这些方法内部调用动画方法,实现视图的动态展示和消失。 7. **使用场景**:在需要弹出视图的地方,实例化这个自定义视图类...

    swift-带动画的加载中视图LoadingViewwithanimation

    最后,为了方便在其他地方使用这个自定义视图,我们可以提供一些公共方法,如开始加载(startLoading)、结束加载(stopLoading)等。这些方法将启动或停止动画,并可能更新标签的文本内容。 ```swift func ...

    JAVA 内存视图与封装

    2. **接口暴露**:通过公共方法(public)暴露必要的功能接口,使得其他对象能够与之交互。如`getValue()`方法提供了对外访问`j`值的方式。 3. **安全性**:封装可以防止非法访问和修改类的内部状态,提高系统的...

    3万字车辆视图大数据应用系统技术方案-智慧-方案.docx

    车辆视图大数据应用系统技术方案是智慧城市的重要组成部分,旨在将车辆视图大数据与人工智能技术相结合,实现智能交通管理、智能城市规划和智能公共服务。下面是该方案的详细知识点: 一、车辆视图大数据应用系统...

    iOS视图间传值

    这样每个视图控制器都可以访问到模型中的数据,实现数据的共享。 5. **Block/闭包**: 在iOS 6之后,我们可以使用Block来传递数据。在发送视图控制器中定义一个Block,并在接收视图控制器中执行这个Block,Block中...

    自定义弹出视图单选功能

    本知识点主要围绕如何实现这样一个自定义的弹出视图,并集成单选功能进行讨论。 首先,我们需要创建一个新的UIView子类,例如命名为KPromptView。这个视图将作为我们的弹出视图,包含用于展示选项的UI元素。在...

    动态n棱柱直观图、三视图及截平面

    借助现代技术工具GeoGebra4.0,我们能够以更直观、更具互动性的方式探索几何学的奥秘,这在传统的教学模式中是难以实现的。无论是初学者还是研究者,都能从中受益,提升对立体几何的理解和应用能力。

    carbide多视图模板

    模板可能包含初始化、绘图、事件处理等常见方法,使得开发者可以专注于实现具体业务逻辑,而不是重复编写基础代码。 接下来是`projecttemplates`。这部分是项目模板,它提供了一个完整的多视图应用程序框架。项目...

    MFC文档与视图架构解析

    两者之间的交互是通过消息机制来实现的,例如CDocument类可以向CView类发送消息,通知其更新视图的内容。 MFC文档与视图架构提供了一种灵活和可扩展的方式来管理和操作文档和视图之间的关系,它是MFC程序开发中的一...

    android圆环百分比视图

    2. **CustomRoundProgressView.java**: 这是自定义视图的实现类,继承自`View`或者`AppCompatImageView`,根据需求可能会扩展到`ViewGroup`。在这个类中,你需要重写`onDraw()`方法,这是Android系统绘制视图的核心...

    表格视图C#实现帮助类.rar

    .NET框架提供了一个运行时环境,称为公共语言运行时(Common Language Runtime,CLR),用于执行和管理.NET代码的执行。.NET框架还提供了大量的类库和工具,以便开发人员可以更轻松地构建应用程序。 除了.NET框架,...

    利用视图建模方法进行网上选课系统软件标准体系结构设计.doc

    逻辑视图关注功效,不仅包含用户可见功效,还包含为实现用户功效而必需提供的“辅助功效模块”。开发视图关注程序包,不仅包含要编写源程序,还包含能够直接使用第三方 SDK 和现成框架、类库,和开发系统将运行于其...

Global site tag (gtag.js) - Google Analytics