Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
289 views
in Technique[技术] by (71.8m points)

iphone - Code is exectuting but the view is not loading when called form a function?

I am doing a book kinda application using a viewBased application. The mainView acts as the backgroundView for loading pages. Each page is a different view and have its own nib. When i swipe on a page(actually on the mainView which have loaded the current view/page), that page will be removed and the next/previous page will be added.

[currentPage.view removeFromSuperview];
[self.view insertSubview:nextPage.view atIndex:0];

I have added a popoverController with a barbutton in this mainView. Its intialized with a tableviewController class named popClass. PopClass is another UITableViewController class which will act as the parent for the popViewController.

self.myPopController = [[PopController alloc] initWithStyle:UITableViewStylePlain];
self.myPopOverController = [[UIPopoverController alloc] initWithContentViewController:myPopController];

When I select certain row in the popover, I want the backgroundview(mainView) to load the page corresponding to the number of the row.

For that I have written a function in bookView(mainView) Controller class. And is calling it from the popOver's parent class when i select certain row.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSInteger toPageNumber = indexPath.row + 1;
[viewController changeToPage:toPageNumber];
}

Function and the lines of code are executing but nothing is happening. Even the log lines are printed but no action takes place. The code is the same for removing a page and adding another page which is working successfully when i swipe the view/page.

What is the problem? OR is there anyother way to make the view change in mainView by using the popover?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You need to have refernce of the background view controller in the popover controller.

In the PopController controller you should have a delagate like:

@interface PopController: UITablViewController{

  //// other varibales;
      id delegate;
}

@property (nonatomic, retain) id delgate;

Now from the class in which you are showing the popovercontroller

you should add this line:

[myPopController setDelegate:self];

Then you can easily acces any method of the main view controller class. By using

[delegate callTheRequiredMethod];

Hope this helps.

Thanks,

Madhup


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...