Замена UITableView с UIPopOverController - PullRequest
1 голос
/ 20 июня 2011

У меня есть UITableView, который не занимает весь экран iPad. Текущее представление, в котором у меня это есть, это источник данных и делегат для UITableView. Теперь я хочу заменить текущий UITableView на UIPopOverController. Из примеров, которые я вижу в Интернете, кажется, что большинство людей создают новый класс, который подклассов UITableView, и представляют этот экземпляр в UIPopOverController. В моем случае, поскольку мой текущий viewController уже является источником данных и делегатом, мои шаги должны быть такими:

(1) создайте новый класс, подкласс UITableViewController (2) сделать этот класс источником данных и делегатом (3) представить экземпляр этого класса в текущем viewController, где был мой UITableView?

Спасибо.

1 Ответ

2 голосов
/ 21 июня 2011

создайте новый контроллер навигации и представьте его в виде таблицы rootView

- (IBAction)seeFavorites{
NSLog(@"Favorites accessed");
if([self.popOverController isPopoverVisible])
{


    [self.popOverController dismissPopoverAnimated:YES];
    return;
}

UINavigationController *favNav = [[UINavigationController alloc]
                                  initWithRootViewController:favoritesView];


self.popOverController = [[[UIPopoverController alloc] 
                           initWithContentViewController:favNav] autorelease];


[popOverController presentPopoverFromBarButtonItem:revealFavorites permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
favoritesView.view.frame = CGRectMake(10, 10, 310, 320);

favoritesView.title = @"Favorites";

[favoritesView.tableView reloadData];


if (![self.popOverController isPopoverVisible]) {
    [favNav release];

}

}

сделать розетку:

в "File1"

@class File2;
@interface FirstViewControlleriPad : UIViewController

{
//code
File2 *file2Outlet;

}
@property (nonatomic,retain) IBOutlet File2 *file2Outlet;
@end

в файле .m

 #import "File2.h"
@implementation File1
@synthesize file2Outlet

в приложении Deelegate.h

#import "File1.h"
#import "File2.h"

@interface AppDelegate : NSObject  {
//...code for appDelegate
File1 *file1;
File2 *file2;
}
@property (nonatomic,retain) File1 *file1;
@property (nonatomic,retain) File2 *file2;
@end

в приложении Delegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

file1 = [[File1 alloc]init];
file2 = [[File2 alloc]init];
file1.file2Outlet = file2;
[file1 release];
[file2 release];
...